Here, “but” refers to “butyrate”, and “DIA” refers to “DIAMOND”, and “merged” refers to “from merged reads”, and “unmerged” refers to “from unmerged reads”, and “HMMERBWA” means the workflow was “mapped reads via BWA to HMMER-annotated genes”, and “DIABWA” means the workflow was “mapped reads via BWA to DIAMOND-annotated genes”
Because the pathways and genes files, respectively, are exactly the same format, they can be imported as elements of a list, over which commands can be iterated.
# Define a function to rename the first column to "subject_id", since it might be "subject"
rename_first_column <- function(df) {
colnames(df)[1] <- "subject_id"
df$subject_id <- as.character(df$subject_id)
# Rename "4hbt" to "ghbt" to make R happy. "4" and "g" for "gamma" are equivalent
if ("4hbt" %in% colnames(df)) {
colnames(df)[colnames(df) == "4hbt"] <- "ghbt"
}
return(df)
}
# Convert strings to NA and ensure numeric values
clean_numeric <- function(df) {
df %>%
mutate(across(-subject_id, ~ as.numeric(as.character(.))))
}
# Define the DIAMOND percent identity thresholds to name things and filter things
thresholds <- c(50, 60, 70, 80, 90, 95, 98, 99, 100)
thresholds2 <- c(40, 50, 60, 70, 80, 90)
# Create pathways_rpkg list with the first column renamed to "subject_id"
pathways_rpkg <-
c(
setNames(
lapply(
sprintf(file.path(data_dir, "FL100_but_pathways_rpkg_DIA%d.tsv"), thresholds),
function(file) {
rename_first_column(read_tsv(file, show_col_types = FALSE))
}
),
sprintf("d%d", thresholds)
),
setNames(
lapply(
sprintf(file.path(data_dir, "FL100_but_pathways_unmerged_rpkg_DIA%dBWA.tsv"), thresholds2),
function(file) {
rename_first_column(read_tsv(file, show_col_types = FALSE))
}
),
sprintf("d%d_b", thresholds2)
),
list("hGA_b" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_pathways_unmerged_rpkg_HMMERBWA.tsv"),
show_col_types = FALSE
)
)
),
list("hGA_b_fs" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_pathways_unmerged_rpkg_HMMERBWAFS.tsv"),
show_col_types = FALSE
)
)
),
list("hGA_b_m" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_pathways_merged_rpkg_HMMERBWA.tsv"),
show_col_types = FALSE
)
)
),
list("d90_b_m" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_pathways_merged_rpkg_DIA90BWA.tsv"),
show_col_types = FALSE
)
)
)
)
# Create genes_rpkg list with the first column renamed to "subject_id"
genes_rpkg <-
c(
setNames(
lapply(
sprintf(file.path(data_dir, "FL100_but_genes_rpkg_DIA%d_collapsed.tsv"), thresholds),
function(file) {
rename_first_column(read_tsv(file, show_col_types = FALSE))
}
),
sprintf("d%d", thresholds)
),
setNames(
lapply(
sprintf(file.path(data_dir, "FL100_but_genes_unmerged_rpkg_DIA%dBWA_collapsed.tsv"), thresholds2),
function(file) {
rename_first_column(read_tsv(file, show_col_types = FALSE))
}
),
sprintf("d%d_b", thresholds2)
),
list("hGA_b" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_genes_unmerged_rpkg_HMMERBWA_collapsed.tsv"),
show_col_types = FALSE
)
)
),
list("hGA_b_fs" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_genes_unmerged_rpkg_HMMERBWAFS_collapsed.tsv"),
show_col_types = FALSE
)
)
),
list("hGA_b_m" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_genes_merged_rpkg_HMMERBWA_collapsed.tsv"),
show_col_types = FALSE
)
)
),
list("d90_b_m" =
rename_first_column(
read_tsv(file.path(data_dir, "FL100_but_genes_merged_rpkg_DIA90BWA_collapsed.tsv"),
show_col_types = FALSE
)
)
)
)
# Check out the result
head(pathways_rpkg[[1]])
## # A tibble: 6 × 7
## subject_id Acetyl Glut Lys GABA sumPaths1 sumPaths2
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5001 5.34 0.653 0.887 0.298 12.7 9.36
## 2 5002 6.42 0.567 0.967 0.666 14.6 10.7
## 3 5004 5.82 0.606 1.95 0.368 14.4 10.7
## 4 5005 6.17 0.711 1.34 0.687 15.1 11.2
## 5 5006 5.48 0.687 0.746 0.317 12.6 9.09
## 6 5007 4.73 0.588 0.399 0.279 10.5 7.50
head(genes_rpkg[[1]])
## # A tibble: 6 × 28
## subject_id ghbt abfD abfH atoA atoD bcd bhbd buk but cro
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 5001 0.113 0.0861 0.0986 0.115 0.104 2.18 1.19 0.348 1.29 1.15
## 2 5002 0.284 0.161 0.221 0.106 0.0880 2.07 1.38 0.554 1.23 1.40
## 3 5004 0.135 0.0763 0.157 0.233 0.170 1.99 1.20 0.576 1.29 1.22
## 4 5005 0.291 0.141 0.255 0.202 0.185 2.27 1.32 0.471 1.38 1.40
## 5 5006 0.153 0.0862 0.0786 0.141 0.107 1.87 1.29 0.279 1.08 1.21
## 6 5007 0.105 0.0498 0.124 0.0652 0.0487 1.51 1.02 0.321 1.02 1.07
## # ℹ 17 more variables: etfA <dbl>, etfB <dbl>, gcdA <dbl>, gcdB <dbl>,
## # gctA <dbl>, gctB <dbl>, hgCoAdA <dbl>, hgCoAdB <dbl>, hgCoAdC <dbl>,
## # kal <dbl>, kamA <dbl>, kamD <dbl>, kamE <dbl>, kce <dbl>, kdd <dbl>,
## # ptb <dbl>, thl <dbl>
group1 <- c("abfH", "ghbt", "abfD")
group2 <- c("kamA", "kamD", "kamE", "kdd", "kce", "kal", "atoA", "atoD")
group3 <- c("gctA", "gctB", "hgCoAdA", "hgCoAdB", "hgCoAdC", "gcdA", "gcdB")
group4 <- c("but", "buk", "ptb", "thl", "bhbd", "cro")
group5 <- c("bcd", "etfA", "etfB")
combined_df <- do.call(rbind,
lapply(names(genes_rpkg), function(name) {
df <- genes_rpkg[[name]]
df$element <- name # Add a new column to identify the pathway set
df
}
)
)
# Gather all variables except "subject_id" and "element" for plotting
combined_long <- combined_df %>%
select(-subject_id) %>% # Remove the "subject_id" column
pivot_longer(-element, names_to = "variable", values_to = "value") # Convert to long format
combined_long$element <-
factor(combined_long$element,
levels = c(
"d50",
"d60",
"d70",
"d80",
"d90",
"d95",
"d98",
"d99",
"d100",
"d40_b",
"d50_b",
"d60_b",
"d70_b",
"d80_b",
"d90_b",
"d90_b_m",
"hGA_b_m",
"hGA_b",
"hGA_b_fs"
)
)
combined_long$variable <-
factor(combined_long$variable,
levels = c(
"abfH", # beginning of 4-aminobutyrate pathway
"ghbt",
"abfD",
"kamA", # beginning of lysine pathway
"kamD",
"kamE",
"kdd",
"kce",
"kal",
"atoA",
"atoD",
"gctA", # beginning of Glutarate pathway
"gctB",
"hgCoAdA",
"hgCoAdB",
"hgCoAdC",
"gcdA",
"gcdB", ## note that this gene is not included in the pathway calculations
"but", # beginning of acetyl-CoA pathway
"buk",
"ptb",
"thl",
"bhbd",
"cro",
"bcd", # shared genes
"etfA",
"etfB"
)
)
separator_df <- data.frame(xintercept = which(levels(combined_long$element) == "d100") + 0.5)
# Function to generate a plot for a given group with median lines
plot_group <- function(data, group, group_title) {
group_data <- data %>% filter(variable %in% group)
# Compute the median value of "hGA_b" for each gene in the group
median_values <- group_data %>%
filter(element %in% c("hGA_b", "hGA_b_m")) %>%
group_by(variable) %>%
summarize(median_value = mean(median(value, na.rm = TRUE), na.rm = TRUE))
ggplot(group_data, aes(x = element, y = value)) +
geom_boxplot() +
geom_hline(data = median_values, aes(yintercept = median_value), color = "blue", linetype = "dotted", linewidth = 1) +
geom_vline(data = separator_df, aes(xintercept = xintercept), color = "red", linetype = "dashed", linewidth = 0.5) +
facet_wrap(~ variable, ncol = 4, scales = "free") +
theme_bw() +
labs(title = group_title, x = "RPKG calculation workflow", y = "RPKG") +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, color = "black"),
plot.title = element_text(hjust = 0.5),
axis.title.x = element_text(face = "bold"),
axis.title.y = element_text(face = "bold")
)
}
# Generate plots for each group with median lines
plot1 <- plot_group(combined_long, group1, "Box-and-whisker plots for 4-Aminobutyrate pathway genes")
plot2 <- plot_group(combined_long, group2, "Box-and-whisker plots for Lysine pathway genes")
plot3 <- plot_group(combined_long, group3, "Box-and-whisker plots for Glutarate pathway genes")
plot4 <- plot_group(combined_long, group4, "Box-and-whisker plots for Acetyl-CoA pathway genes")
plot5 <- plot_group(combined_long, group5, "Box-and-whisker plots for shared pathway genes")
d90-d100 were created by aligning merged
reads against the reference database via DIAMONDd90_b and d30_b were created by
BWA-aligning unmerged reads against DIAMOND-annotated butyrate synthesis
gene ORFsd90_b_m was created by BWA-aligning merged reads
against DIAMOND-annotated butyrate synthesis gene ORFshGA_b was created by BWA-aligning unmerged reads
against --cut-ga-HMMER-annotated butyrate synthesis gene
ORFshGA_b_fs was created by filtering the files that made
hGA_b by genes that were annotated by Foldseek.hGA_b_m was created by BWA-aligning merged reads
against --cut-ga-HMMER-annotated butyrate synthesis gene
ORFs# Arrange the plots in a grid layout
grid.arrange(plot1, plot2, plot3, plot4, plot5, ncol = 1, heights = c(2, 2, 2, 2, 1))
corr_list <- list()
# Make a vector of column names, except 'subject_id'
columns_to_corr <- setdiff(colnames(pathways_rpkg[[1]]), "subject_id")
# loop through each column name (i.e. pathway count)
for (col in columns_to_corr) {
# Calculate the correlation matrix across all pathways_rpkg elements for the current column
corr_element <-
cor(
do.call(
cbind,
lapply(
names(pathways_rpkg),
function(element) pathways_rpkg[[element]][[col]]
)
),
method = "spearman"
)
# The matrix has no names, only a position index. Assign row and column names based on the names of pathways_rpkg
colnames(corr_element) <- rownames(corr_element) <- names(pathways_rpkg)
# Extract the lower triangular part of the matrix (excluding the diagonal)
corr_element[upper.tri(corr_element, diag = TRUE)] <- NA
# Store the correlation matrix in the previously-defined list using the column name as element name
corr_list[[col]] <- corr_element
}
Relevant lines of code from
count_ButyratePathways.py
for (col in names(corr_list)) {
# Round each correlation matrix in the list to 4 decimal places (10,000th)
corr_matrix_rounded <- round(corr_list[[col]], 2)
cat(paste("Correlation matrix for", col, ":\n"))
print(corr_matrix_rounded, na.print = "")
cat("\n")
}
## Correlation matrix for Acetyl :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.99
## d70 0.96 0.99
## d80 0.93 0.96 0.99
## d90 0.85 0.89 0.93 0.97
## d95 0.76 0.79 0.84 0.90 0.98
## d98 0.68 0.72 0.76 0.83 0.93 0.98
## d99 0.64 0.67 0.72 0.79 0.90 0.96 0.99
## d100 0.64 0.67 0.72 0.79 0.90 0.96 0.99 1.00
## d40_b 0.80 0.79 0.74 0.68 0.59 0.51 0.44 0.40 0.40
## d50_b 0.87 0.87 0.84 0.80 0.73 0.65 0.58 0.54 0.54 0.96
## d60_b 0.89 0.91 0.90 0.87 0.78 0.69 0.61 0.56 0.56 0.90 0.96
## d70_b 0.89 0.91 0.93 0.92 0.85 0.76 0.68 0.63 0.63 0.84 0.93 0.98
## d80_b 0.88 0.91 0.94 0.95 0.91 0.84 0.77 0.72 0.72 0.79 0.90 0.95 0.98
## d90_b 0.86 0.90 0.93 0.95 0.94 0.89 0.83 0.79 0.78 0.74 0.86 0.91 0.95
## hGA_b 0.89 0.90 0.89 0.86 0.77 0.68 0.60 0.55 0.54 0.91 0.97 0.99 0.97
## hGA_b_fs 0.89 0.91 0.90 0.87 0.79 0.70 0.63 0.58 0.57 0.91 0.97 0.99 0.98
## hGA_b_m 0.96 0.97 0.96 0.92 0.84 0.74 0.65 0.60 0.60 0.83 0.90 0.95 0.94
## d90_b_m 0.89 0.92 0.96 0.98 0.97 0.92 0.86 0.82 0.82 0.67 0.79 0.86 0.91
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.98
## hGA_b 0.94 0.90
## hGA_b_fs 0.95 0.91 1.00
## hGA_b_m 0.92 0.90 0.95 0.95
## d90_b_m 0.95 0.98 0.85 0.86 0.91
##
## Correlation matrix for Glut :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.86
## d70 0.73 0.95
## d80 0.73 0.95 1.00
## d90 0.72 0.93 0.98 0.99
## d95 0.68 0.88 0.93 0.93 0.97
## d98 0.58 0.75 0.80 0.81 0.88 0.96
## d99 0.53 0.69 0.74 0.75 0.82 0.92 0.99
## d100 0.53 0.69 0.74 0.75 0.82 0.91 0.99 1.00
## d40_b 0.63 0.49 0.35 0.34 0.33 0.31 0.28 0.24 0.24
## d50_b 0.70 0.69 0.58 0.58 0.57 0.54 0.47 0.43 0.43 0.74
## d60_b 0.63 0.86 0.90 0.90 0.88 0.83 0.72 0.66 0.66 0.51 0.69
## d70_b 0.63 0.86 0.90 0.90 0.89 0.83 0.73 0.67 0.67 0.50 0.69 1.00
## d80_b 0.63 0.86 0.90 0.90 0.89 0.83 0.73 0.67 0.66 0.50 0.69 1.00 1.00
## d90_b 0.63 0.85 0.89 0.90 0.91 0.90 0.83 0.78 0.78 0.48 0.67 0.96 0.97
## hGA_b 0.63 0.87 0.91 0.90 0.89 0.83 0.73 0.67 0.67 0.51 0.69 1.00 1.00
## hGA_b_fs 0.63 0.87 0.91 0.90 0.89 0.84 0.73 0.67 0.67 0.51 0.69 1.00 1.00
## hGA_b_m 0.72 0.92 0.96 0.96 0.95 0.88 0.76 0.71 0.70 0.42 0.63 0.95 0.95
## d90_b_m 0.70 0.89 0.94 0.94 0.96 0.95 0.87 0.82 0.82 0.40 0.62 0.92 0.92
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.97
## hGA_b 1.00 0.96
## hGA_b_fs 1.00 0.97 1.00
## hGA_b_m 0.95 0.93 0.95 0.96
## d90_b_m 0.92 0.97 0.92 0.92 0.95
##
## Correlation matrix for Lys :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.99
## d70 0.96 0.99
## d80 0.94 0.96 0.99
## d90 0.81 0.83 0.87 0.92
## d95 0.60 0.62 0.67 0.74 0.93
## d98 0.52 0.54 0.59 0.67 0.89 0.99
## d99 0.51 0.53 0.58 0.66 0.88 0.99 1.00
## d100 0.51 0.53 0.58 0.66 0.88 0.99 1.00 1.00
## d40_b 0.60 0.56 0.53 0.53 0.51 0.40 0.35 0.34 0.34
## d50_b 0.91 0.93 0.91 0.88 0.73 0.52 0.44 0.43 0.43 0.61
## d60_b 0.92 0.95 0.96 0.94 0.80 0.58 0.51 0.49 0.49 0.58 0.95
## d70_b 0.91 0.95 0.97 0.96 0.83 0.62 0.55 0.54 0.54 0.55 0.94 0.99
## d80_b 0.89 0.93 0.96 0.97 0.90 0.72 0.65 0.64 0.64 0.57 0.91 0.97 0.98
## d90_b 0.63 0.66 0.71 0.78 0.94 0.95 0.93 0.92 0.92 0.50 0.61 0.67 0.71
## hGA_b 0.92 0.94 0.93 0.90 0.75 0.53 0.46 0.45 0.45 0.60 0.99 0.97 0.96
## hGA_b_fs 0.92 0.94 0.94 0.90 0.75 0.53 0.46 0.45 0.45 0.59 0.99 0.97 0.95
## hGA_b_m 0.96 0.97 0.96 0.92 0.77 0.55 0.47 0.46 0.46 0.55 0.96 0.95 0.94
## d90_b_m 0.65 0.67 0.72 0.79 0.95 0.97 0.95 0.94 0.94 0.46 0.59 0.65 0.69
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.80
## hGA_b 0.93 0.63
## hGA_b_fs 0.93 0.62 1.00
## hGA_b_m 0.91 0.61 0.98 0.98
## d90_b_m 0.79 0.99 0.61 0.60 0.61
##
## Correlation matrix for GABA :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.98
## d70 0.92 0.96
## d80 0.84 0.90 0.97
## d90 0.67 0.72 0.80 0.90
## d95 0.48 0.53 0.61 0.73 0.90
## d98 0.32 0.37 0.44 0.56 0.75 0.93
## d99 0.23 0.26 0.33 0.44 0.62 0.84 0.97
## d100 0.23 0.26 0.33 0.44 0.62 0.84 0.96 1.00
## d40_b 0.49 0.47 0.40 0.34 0.32 0.27 0.22 0.20 0.20
## d50_b 0.84 0.84 0.78 0.70 0.58 0.41 0.29 0.21 0.20 0.68
## d60_b 0.76 0.82 0.86 0.83 0.69 0.52 0.38 0.27 0.27 0.52 0.86
## d70_b 0.76 0.82 0.89 0.88 0.74 0.56 0.40 0.30 0.29 0.46 0.80 0.93
## d80_b 0.62 0.68 0.76 0.83 0.86 0.70 0.53 0.41 0.40 0.41 0.68 0.81 0.86
## d90_b 0.54 0.60 0.67 0.74 0.84 0.74 0.60 0.47 0.47 0.35 0.60 0.72 0.76
## hGA_b 0.81 0.85 0.83 0.75 0.61 0.43 0.30 0.20 0.20 0.60 0.94 0.88 0.85
## hGA_b_fs 0.83 0.86 0.82 0.74 0.59 0.40 0.25 0.15 0.14 0.60 0.93 0.87 0.84
## hGA_b_m 0.87 0.90 0.87 0.79 0.62 0.44 0.30 0.20 0.20 0.54 0.90 0.84 0.82
## d90_b_m 0.57 0.63 0.70 0.78 0.87 0.76 0.61 0.47 0.47 0.31 0.57 0.70 0.74
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.90
## hGA_b 0.72 0.63
## hGA_b_fs 0.70 0.60 0.98
## hGA_b_m 0.69 0.60 0.97 0.94
## d90_b_m 0.89 0.98 0.61 0.59 0.61
##
## Correlation matrix for sumPaths1 :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.98
## d70 0.92 0.97
## d80 0.86 0.92 0.98
## d90 0.74 0.80 0.88 0.95
## d95 0.62 0.67 0.75 0.84 0.96
## d98 0.54 0.59 0.66 0.75 0.90 0.98
## d99 0.51 0.55 0.61 0.70 0.86 0.96 0.99
## d100 0.50 0.55 0.61 0.70 0.86 0.96 0.99 1.00
## d40_b 0.66 0.63 0.54 0.47 0.38 0.32 0.28 0.25 0.25
## d50_b 0.81 0.82 0.79 0.72 0.60 0.50 0.43 0.39 0.39 0.88
## d60_b 0.82 0.86 0.88 0.83 0.70 0.58 0.49 0.44 0.44 0.73 0.95
## d70_b 0.80 0.86 0.90 0.88 0.78 0.66 0.57 0.52 0.51 0.66 0.90 0.98
## d80_b 0.77 0.84 0.91 0.92 0.85 0.74 0.65 0.60 0.60 0.60 0.85 0.94 0.98
## d90_b 0.73 0.79 0.88 0.92 0.92 0.85 0.78 0.73 0.73 0.52 0.76 0.85 0.91
## hGA_b 0.80 0.81 0.77 0.70 0.59 0.49 0.43 0.39 0.38 0.90 0.97 0.92 0.88
## hGA_b_fs 0.80 0.81 0.78 0.71 0.60 0.50 0.43 0.39 0.38 0.89 0.98 0.93 0.89
## hGA_b_m 0.92 0.91 0.85 0.78 0.67 0.57 0.51 0.47 0.47 0.80 0.88 0.84 0.81
## d90_b_m 0.77 0.83 0.91 0.96 0.97 0.89 0.81 0.77 0.77 0.43 0.67 0.78 0.86
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.96
## hGA_b 0.82 0.74
## hGA_b_fs 0.83 0.75 0.99
## hGA_b_m 0.78 0.72 0.92 0.91
## d90_b_m 0.92 0.97 0.66 0.67 0.72
##
## Correlation matrix for sumPaths2 :
## d50 d60 d70 d80 d90 d95 d98 d99 d100 d40_b d50_b d60_b d70_b
## d50
## d60 0.98
## d70 0.93 0.97
## d80 0.85 0.91 0.97
## d90 0.71 0.77 0.86 0.94
## d95 0.56 0.62 0.71 0.82 0.95
## d98 0.46 0.51 0.60 0.72 0.88 0.98
## d99 0.42 0.47 0.55 0.67 0.84 0.95 0.99
## d100 0.42 0.46 0.55 0.66 0.84 0.95 0.99 1.00
## d40_b 0.68 0.65 0.58 0.50 0.39 0.30 0.25 0.22 0.21
## d50_b 0.82 0.84 0.80 0.72 0.58 0.44 0.36 0.32 0.31 0.87
## d60_b 0.83 0.87 0.87 0.80 0.66 0.51 0.42 0.36 0.36 0.76 0.96
## d70_b 0.79 0.85 0.90 0.87 0.76 0.61 0.51 0.45 0.45 0.69 0.91 0.97
## d80_b 0.76 0.83 0.90 0.91 0.84 0.71 0.62 0.56 0.56 0.64 0.85 0.93 0.98
## d90_b 0.69 0.75 0.84 0.90 0.92 0.85 0.78 0.73 0.72 0.53 0.73 0.80 0.88
## hGA_b 0.83 0.86 0.85 0.77 0.62 0.47 0.37 0.32 0.31 0.80 0.98 0.99 0.95
## hGA_b_fs 0.83 0.86 0.85 0.77 0.63 0.48 0.39 0.33 0.33 0.79 0.97 0.99 0.95
## hGA_b_m 0.93 0.95 0.92 0.83 0.67 0.51 0.41 0.36 0.36 0.69 0.90 0.93 0.89
## d90_b_m 0.72 0.78 0.87 0.94 0.97 0.90 0.82 0.78 0.77 0.43 0.64 0.73 0.82
## d80_b d90_b hGA_b hGA_b_fs hGA_b_m d90_b_m
## d50
## d60
## d70
## d80
## d90
## d95
## d98
## d99
## d100
## d40_b
## d50_b
## d60_b
## d70_b
## d80_b
## d90_b 0.94
## hGA_b 0.89 0.76
## hGA_b_fs 0.89 0.76 1.00
## hGA_b_m 0.84 0.72 0.94 0.93
## d90_b_m 0.89 0.97 0.68 0.69 0.73
corr_element <- cor() will make a correlation matrix
from a matrix inputdo.call() accepts the list generated by
lapply() and cbind()s-together each element
into a matrix because cbind() default behavior is to create
a matrix if all inputs are numeric vectorslapply(names(pathways_rpkg), function(element) is not a
loop, but iterates over each list element’s pathways RPKG and returns a
list, with each element representing a different calculation workflow of
the current value of colmethod = "spearman" based on previous analyses, i will
assume the data are not normally distributedcorr_element[upper.tri(corr_element, diag = TRUE)] <- NA
Because direction of correlation does matter, the matrix is a
mirrorpath_plasma_input <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/plasma_scfas.csv"
path_plasma_output <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/plasma_scfas_processed.csv"
path_fecal_input <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/fecal_scfa_fl100.csv"
path_new_but_isobut <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/butyrate_isob_new_integration_12-06-22.csv"
path_fecal_output <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/fecal_scfas_processed.csv"
path_fecal_vars <- "/Users/chad.masarweh/Documents/FL100_SCFA_andrew/FL100_stool_variables.txt"
`%!in%` <- Negate(`%in%`)
## read in PLASMA SCFA data
scfa_plasma <- readr::read_delim(path_plasma_input, delim = ",", col_types = "fdddf")
## any missing or NA in propionate or butyrate, make it 10
## this is because you supply 10 as the value that is left-censored in
## censored models.
###CHAD SAYS: to deal with rank statistical tests, might want to collapse samples equal to 10
scfa_plasma[c("p_butyric_acid", "p_propionic_acid")][is.na(scfa_plasma[c("p_butyric_acid", "p_propionic_acid")])] <- 10
## create a list of subjects whose plasma samples we have multiples of
scfa_duplicated <- scfa_plasma %>% dplyr::filter(., duplicates != "") %>% dplyr::pull(., subject_id) %>% droplevels()
## create a empty DF in which to place the average of duplicated samples
deduplicated <- data.frame(subject_id=character(),
p_acetic_acid=numeric(),
p_propionic_acid=numeric(),
p_butyric_acid=numeric())
## loop through duplicated samples
scfas <- c("p_acetic_acid", "p_propionic_acid", "p_butyric_acid")
for (subject in unique(scfa_duplicated)) {
## for each duplicated sample, pull it out and all the duplicated SCFA data
scfa_duplicated_tmp <- scfa_plasma %>% dplyr::filter(., subject_id == subject) %>%
dplyr::select(., subject_id, p_acetic_acid, p_propionic_acid, p_butyric_acid)
## check and make sure you dont have a SCFA that is completely missing data
## you shouldnt with this data
if (max((sum(is.na(scfa_duplicated_tmp$p_acetic_acid))),
(sum(is.na(scfa_duplicated_tmp$p_propionic_acid))),
(sum(is.na(scfa_duplicated_tmp$p_butyric_acid)))) > NROW(scfa_duplicated_tmp)) {
stop("You have duplicated subject_id with completely missing SCFA data for at least one SCFA")
}
## create a vector of the mean SCFA abundance of the values you have,
## ignoring any NAs
missing_means <- colMeans(scfa_duplicated_tmp[2:4], na.rm = T)
count = 1
## add this SCFA mean to the formerly empty, deduplicated DF
deduplicated <- deduplicated %>% tibble::add_row(., subject_id=subject,
p_acetic_acid=missing_means[1],
p_propionic_acid=missing_means[2],
p_butyric_acid=missing_means[3])
}
## remove duplicated from raw data and add back in averaged values
scfa_plasma_dedup <- scfa_plasma %>% dplyr::select(., -duplicates) %>%
dplyr::filter(., subject_id %!in% scfa_duplicated)
scfa_plasma_dedup <- rbind(scfa_plasma_dedup, deduplicated)
## convert ng/mL to nmole/ul because fecal units are nmole/mg
scfa_plasma_dedup$p_butyric_acid_nmol <- scfa_plasma_dedup$p_butyric_acid / (1000 * 88.11)
scfa_plasma_dedup$p_acetic_acid_nmol <- scfa_plasma_dedup$p_acetic_acid / (1000 * 60.052)
scfa_plasma_dedup$p_propionic_acid_nmol <- scfa_plasma_dedup$p_propionic_acid / (1000 * 74.08)
## total here
scfa_plasma_dedup$p_scfa_nmol_total <- scfa_plasma_dedup$p_butyric_acid_nmol +
scfa_plasma_dedup$p_acetic_acid_nmol +
scfa_plasma_dedup$p_propionic_acid_nmol
## create relative abundance values
scfa_plasma_dedup$p_butyric_acid_nmol_norm <- scfa_plasma_dedup$p_butyric_acid_nmol / scfa_plasma_dedup$p_scfa_nmol_total
scfa_plasma_dedup$p_acetic_acid_nmol_norm <- scfa_plasma_dedup$p_acetic_acid_nmol / scfa_plasma_dedup$p_scfa_nmol_total
scfa_plasma_dedup$p_propionic_acid_nmol_norm <- scfa_plasma_dedup$p_propionic_acid_nmol / scfa_plasma_dedup$p_scfa_nmol_total
## write to file
#readr::write_delim(path_plasma_output, delim = ",", x = scfa_plasma_dedup)
## READ IN FECAL SCFA ==========================================================
fecal_scfas <- readr::read_delim(path_fecal_input, delim = ",", col_types = "fdddd") %>% dplyr::select(., -butyrate)
new_fecal_butyrate <- readr::read_delim(path_new_but_isobut, delim = ",", col_types = "fdd")
fecal_scfas <- merge(new_fecal_butyrate, fecal_scfas, by = "subject_id")
fecal_scfas <- fecal_scfas %>% rename(., "butyrate" = "new_butyrate", "isobutyrate" = "new_isobutyrate")
fecal_vars <- read.delim(path_fecal_vars)
## get rid of fecal samples that are >24 hrs or after visit 1
fecal_vars <- fecal_vars %>%
dplyr::filter(., diff_time_hrs < 24) %>%
dplyr::filter(., AfterV2 == 0)
fecal_scfas <- fecal_scfas %>% dplyr::filter(., subject_id %in% fecal_vars$subject_id)
## take relative abundane of SCFA
fecal_scfas$acetate_norm <- fecal_scfas$acetate / fecal_scfas$total_scfa
fecal_scfas$butyrate_norm <- fecal_scfas$butyrate / fecal_scfas$total_scfa
fecal_scfas$propionate_norm <- fecal_scfas$propionate / fecal_scfas$total_scfa
## dist to norm (60:20:20)
fecal_scfas$acetate_norm_ratio_dist <- fecal_scfas$acetate_norm - 0.6
fecal_scfas$butyrate_norm_ratio_dist <- fecal_scfas$butyrate_norm - 0.2
fecal_scfas$propionate_norm_ratio_dist <- fecal_scfas$propionate_norm - 0.2
## get rid of isobutyrate - further evidence makes it seem like it is not isobutyrate
fecal_scfas <- fecal_scfas %>% dplyr::select(., -isobutyrate)
#readr::write_delim(path_fecal_output, delim = ",", x = fecal_scfas)
# filter scfa table, change subject_id data type from factor to character, and rename headers
f_scfas = fecal_scfas[,c(1:8)]
f_scfas$subject_id = as.character(f_scfas$subject_id)
colnames(f_scfas) =
c(
"subject_id",
"f_butyrate_nm_abs",
"f_acetate_nm_abs",
"f_propionate_nm_abs",
"f_AcPrBu_tot_nm_abs",
"f_acetate_nm_rel",
"f_butyrate_nm_rel",
"f_propionate_nm_rel"
)
p_scfa_dedup = scfa_plasma_dedup
p_scfa_dedup$subject_id = as.character(p_scfa_dedup$subject_id)
colnames(p_scfa_dedup) =
c(
"subject_id",
"p_acetic_mg_abs",
"p_propionic_mg_abs",
"p_butyric_mg_abs",
"p_butyric_nm_abs",
"p_acetic_nm_abs",
"p_propionic_nm_abs",
"p_AcPrBu_tot_nm_abs",
"p_butyric_nm_rel",
"p_acetic_nm_rel",
"p_propionic_nm_rel"
)
class(p_scfa_dedup)
## [1] "tbl_df" "tbl" "data.frame"
class(f_scfas)
## [1] "data.frame"
Use inner_join() because I only want subjects that have
pathway RPKG and butyrate measurements, because not all
subjects were metagenome’d and GC/MS’d
path_and_conc <- list()
for (element_name in names(pathways_rpkg)) {
# Inner join with `f_scfas` and store the result with "f_" prefix
path_and_conc[[paste0("f_", element_name)]] <-
inner_join(f_scfas, pathways_rpkg[[element_name]], by = "subject_id")
# Inner join with `p_scfa_dedup` and store the result with "p_" prefix
path_and_conc[[paste0("p_", element_name)]] <-
inner_join(p_scfa_dedup, pathways_rpkg[[element_name]], by = "subject_id")
}
genes_and_conc <- list()
for (element_name in names(genes_rpkg)) {
# Inner join with `f_scfas` and store the result with "f_" prefix
genes_and_conc[[paste0("f_", element_name)]] <-
inner_join(f_scfas, genes_rpkg[[element_name]], by = "subject_id")
# Inner join with `p_scfa_dedup` and store the result with "p_" prefix
genes_and_conc[[paste0("p_", element_name)]] <-
inner_join(p_scfa_dedup, genes_rpkg[[element_name]], by = "subject_id")
}
# Check the names of the new list
names(path_and_conc)
## [1] "f_d50" "p_d50" "f_d60" "p_d60" "f_d70"
## [6] "p_d70" "f_d80" "p_d80" "f_d90" "p_d90"
## [11] "f_d95" "p_d95" "f_d98" "p_d98" "f_d99"
## [16] "p_d99" "f_d100" "p_d100" "f_d40_b" "p_d40_b"
## [21] "f_d50_b" "p_d50_b" "f_d60_b" "p_d60_b" "f_d70_b"
## [26] "p_d70_b" "f_d80_b" "p_d80_b" "f_d90_b" "p_d90_b"
## [31] "f_hGA_b" "p_hGA_b" "f_hGA_b_fs" "p_hGA_b_fs" "f_hGA_b_m"
## [36] "p_hGA_b_m" "f_d90_b_m" "p_d90_b_m"
head(path_and_conc[["f_d90"]])
## subject_id f_butyrate_nm_abs f_acetate_nm_abs f_propionate_nm_abs
## 1 5001 9.206765 32.61356 8.346758
## 2 5002 8.357445 36.04017 5.513996
## 3 5004 2.099615 18.27598 3.031083
## 4 5006 13.425268 27.53877 6.360774
## 5 5007 10.858761 33.65036 14.974260
## 6 5009 8.147446 23.73812 7.771299
## f_AcPrBu_tot_nm_abs f_acetate_nm_rel f_butyrate_nm_rel f_propionate_nm_rel
## 1 51.31167 0.6355974 0.17942829 0.1626678
## 2 51.14643 0.7046468 0.16340231 0.1078080
## 3 24.69678 0.7400148 0.08501571 0.1227319
## 4 49.95069 0.5513191 0.26877044 0.1273411
## 5 60.91302 0.5524330 0.17826666 0.2458302
## 6 40.46712 0.5866027 0.20133497 0.1920398
## Acetyl Glut Lys GABA sumPaths1 sumPaths2
## 1 4.367817 0.21934149 0.4296898 0.09447196 9.282638 6.818066
## 2 4.746446 0.16089307 0.3225241 0.16553773 9.415580 6.920423
## 3 4.117462 0.16650045 0.7835252 0.06022555 8.745365 6.516442
## 4 4.706142 0.25245229 0.2708652 0.07475753 9.206336 6.749326
## 5 4.293260 0.09571083 0.1179430 0.11734490 7.949828 5.867915
## 6 5.362863 0.11827640 0.2626814 0.13179127 10.717290 7.859475
names(genes_and_conc)
## [1] "f_d50" "p_d50" "f_d60" "p_d60" "f_d70"
## [6] "p_d70" "f_d80" "p_d80" "f_d90" "p_d90"
## [11] "f_d95" "p_d95" "f_d98" "p_d98" "f_d99"
## [16] "p_d99" "f_d100" "p_d100" "f_d40_b" "p_d40_b"
## [21] "f_d50_b" "p_d50_b" "f_d60_b" "p_d60_b" "f_d70_b"
## [26] "p_d70_b" "f_d80_b" "p_d80_b" "f_d90_b" "p_d90_b"
## [31] "f_hGA_b" "p_hGA_b" "f_hGA_b_fs" "p_hGA_b_fs" "f_hGA_b_m"
## [36] "p_hGA_b_m" "f_d90_b_m" "p_d90_b_m"
head(genes_and_conc[["f_d90"]])
## subject_id f_butyrate_nm_abs f_acetate_nm_abs f_propionate_nm_abs
## 1 5001 9.206765 32.61356 8.346758
## 2 5002 8.357445 36.04017 5.513996
## 3 5004 2.099615 18.27598 3.031083
## 4 5006 13.425268 27.53877 6.360774
## 5 5007 10.858761 33.65036 14.974260
## 6 5009 8.147446 23.73812 7.771299
## f_AcPrBu_tot_nm_abs f_acetate_nm_rel f_butyrate_nm_rel f_propionate_nm_rel
## 1 51.31167 0.6355974 0.17942829 0.1626678
## 2 51.14643 0.7046468 0.16340231 0.1078080
## 3 24.69678 0.7400148 0.08501571 0.1227319
## 4 49.95069 0.5513191 0.26877044 0.1273411
## 5 60.91302 0.5524330 0.17826666 0.2458302
## 6 40.46712 0.5866027 0.20133497 0.1920398
## ghbt abfD abfH atoA atoD bcd bhbd
## 1 0.013048140 0.05294342 0.02848040 0.042409661 0.052217530 1.706747 1.0813943
## 2 0.026707722 0.08495421 0.05387579 0.017774653 0.007491734 1.525022 1.1538065
## 3 0.007632446 0.03087848 0.02171463 0.054961693 0.047943151 1.388729 0.9437683
## 4 0.011751993 0.04464178 0.01836376 0.031878515 0.009629033 1.445109 1.1623520
## 5 0.021223488 0.04580750 0.05031392 0.002622225 0.000000000 1.243656 0.9936508
## 6 0.028181110 0.05097028 0.05263988 0.017189151 0.012525461 1.983863 1.3058586
## buk but cro etfA etfB gcdA gcdB
## 1 0.02885555 1.0471298 1.0416672 1.1962368 1.268334 0.03539708 0.07273579
## 2 0.13674784 0.9702957 1.0786134 1.1356834 1.359474 0.03103638 0.04561364
## 3 0.16717118 0.8160721 0.9696918 1.1038401 1.125083 0.02678225 0.08530622
## 4 0.11322172 0.9443462 1.1172738 1.1666690 1.290341 0.04275899 0.09574755
## 5 0.09114074 0.9866933 1.0374143 0.9905148 1.091399 0.01632885 0.06746636
## 6 0.05114812 1.1996755 1.3664544 1.4135627 1.444252 0.02244025 0.04915359
## gctA gctB hgCoAdA hgCoAdB hgCoAdC kal kamA
## 1 0.03033256 0.04760611 0.02819649 0.04265696 0.03515230 0.05967364 0.04275616
## 2 0.02668798 0.03873658 0.01096059 0.02967339 0.02379814 0.06486229 0.04007810
## 3 0.02562936 0.02780451 0.02333581 0.03046370 0.03248483 0.14141767 0.08633717
## 4 0.02913900 0.05033138 0.04249942 0.04685082 0.04087267 0.02902896 0.03719454
## 5 0.01721481 0.01490428 0.01196008 0.01808713 0.01721568 0.02432835 0.01290056
## 6 0.01784329 0.02184772 0.01361461 0.02167574 0.02085479 0.03724778 0.03763728
## kamD kamE kce kdd ptb thl
## 1 0.05010581 0.07584070 0.04813727 0.05854901 0.03527771 1.133492
## 2 0.04326683 0.04664447 0.05339148 0.04901454 0.14536178 1.261621
## 3 0.12261413 0.11817212 0.10364774 0.10843153 0.16066009 1.060098
## 4 0.04216306 0.03903660 0.03394606 0.04798838 0.10918579 1.259763
## 5 0.01347783 0.01189427 0.01920936 0.03351037 0.14829565 1.036066
## 6 0.03014895 0.04659812 0.04192864 0.03940606 0.08009900 1.359627
nrow(path_and_conc[["f_d90"]])
## [1] 283
nrow(genes_and_conc[["f_d90"]])
## [1] 283
f_names <- grep("^f_", names(path_and_conc), value = TRUE)
legend_order <- c(
# "f_d100",
"f_d99",
# "f_d98",
# "f_d95",
#"f_d90",
# "f_d80",
# "f_d70",
# "f_d60",
"f_d50",
"f_d90_b",
# "f_d80_b",
# "f_d70_b",
# "f_d60_b",
"f_d50_b",
#"f_d40_b",
# "f_d90_b_m",
"f_hGA_b",
"f_hGA_b_fs"
#"f_hGA_b_m"
)
custom_colors <- c(
# "f_d100" = "darkblue",
"f_d99" = "black",
# "f_d98" = "purple4",
# "f_d95" = "purple",
#"f_d90" = "grey30",
# "f_d80" = "black",
# "f_d70" = "grey30",
# "f_d60" = "grey60",
"f_d50" = "cyan",
"f_d90_b" = "purple",
# "f_d80_b" = "blue",
# "f_d70_b" = "purple4",
# "f_d60_b" = "black",
"f_d50_b" = "orange",
#"f_d40_b" = "yellow",
# "f_d90_b_m" = "green",
"f_hGA_b" = "blue",
"f_hGA_b_fs" = "red"
#"f_hGA_b_m" = "cyan"
)
# Define your variable lists
#pathway_graphs <- c("Acetyl", "Lys", "GABA", "Glut", "sumPaths1", "sumPaths2")
pathway_graphs <- c("Acetyl", "sumPaths1", "sumPaths2")
conc_graphs <- c("f_butyrate_nm_abs", "f_butyrate_nm_rel")
# Create a list to store the plots
plot_list <- list()
# Nested loops to iterate over combinations of pathway and concentration graphs
for (pathway_var in pathway_graphs) {
for (conc_var in conc_graphs) {
combined_data <- do.call(rbind, lapply(legend_order, function(merged_element) {
data <- path_and_conc[[merged_element]]
data %>%
select(subject_id, all_of(c(pathway_var, conc_var))) %>% # Select the relevant columns
mutate(Element = merged_element) # Add a column to identify the source element
}))
# Set factor levels for the Element column to control legend order
combined_data$Element <- factor(combined_data$Element, levels = legend_order)
# Create the plot title dynamically
plot_title <- paste(conc_var, "vs", pathway_var)
# Create the ggplot object
p <- ggplot(combined_data, aes(x = !!sym(pathway_var), y = !!sym(conc_var), color = Element)) +
geom_point(size = 0.8) +
geom_smooth(method = "lm", se = TRUE, alpha = 0.20, linewidth = 1.0) +
labs(x = "pathway", y = "nanomolarity", title = plot_title, color = "Workflow") +
scale_color_manual(values = custom_colors) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5), # Center the plot title
)
# Store the plot in the list with a descriptive name
plot_list[[paste(conc_var, pathway_var, sep = "_vs_")]] <- p
}
}
# Print the plots
plot_list
## $f_butyrate_nm_abs_vs_Acetyl
## `geom_smooth()` using formula = 'y ~ x'
##
## $f_butyrate_nm_rel_vs_Acetyl
## `geom_smooth()` using formula = 'y ~ x'
##
## $f_butyrate_nm_abs_vs_sumPaths1
## `geom_smooth()` using formula = 'y ~ x'
##
## $f_butyrate_nm_rel_vs_sumPaths1
## `geom_smooth()` using formula = 'y ~ x'
##
## $f_butyrate_nm_abs_vs_sumPaths2
## `geom_smooth()` using formula = 'y ~ x'
##
## $f_butyrate_nm_rel_vs_sumPaths2
## `geom_smooth()` using formula = 'y ~ x'
p_names <- grep("^p_", names(path_and_conc), value = TRUE)
pathways <- colnames(pathways_rpkg[[1]])[colnames(pathways_rpkg[[1]]) != "subject_id"]
legend_order <- c(
#"p_d100",
#"p_d99",
#"p_d98",
#"p_d95",
"p_d50",
#"p_d60",
#"p_d70",
#"p_d80",
"p_d90",
"p_d90_b",
#"p_d80_b",
#"p_d70_b",
#"p_d60_b",
"p_d50_b",
#"p_d40_b",
"p_d90_b_m",
"p_hGA_b",
"p_hGA_b_fs"
#"p_hGA_b_m"
)
custom_colors <-
c(
#"p_d100" = "black",
#"p_d99" = "grey30",
#"p_d98" = "grey60",
#"p_d95" = "grey90",
"p_d50" = "grey",
#"p_d60" = "blue",
#"p_d70" = "blue",
#"p_d80" = "blue",
"p_d90" = "grey30",
"p_d90_b" = "black",
#"p_d80_b" = "grey30",
#"p_d70_b" = "grey60",
#"p_d60_b" = "grey90",
"p_d50_b" = "blue",
#"p_d40_b" = "orange",
"p_d90_b_m" = "red",
"p_hGA_b" = "green",
"p_hGA_b_fs" = "hotpink"
#"p_hGA_b_m" = "cyan"
)
# Define your variable lists
pathway_graphs <- c("Acetyl", "sumPaths1", "sumPaths2")
conc_graphs <- c("p_butyric_nm_abs", "p_butyric_nm_rel")
# Create a list to store the plots
plot_list <- list()
# Nested loops to iterate over combinations of pathway and concentration graphs
for (pathway_var in pathway_graphs) {
for (conc_var in conc_graphs) {
combined_data <- do.call(rbind, lapply(p_names, function(merged_element) {
data <- path_and_conc[[merged_element]]
data %>%
select(subject_id, all_of(c(pathway_var, conc_var))) %>% # Select the relevant columns
mutate(Element = merged_element) # Add a column to identify the source element
}))
# Set factor levels for the Element column to control legend order
combined_data$Element <- factor(combined_data$Element, levels = legend_order)
# Create the plot title dynamically
plot_title <- paste(conc_var, "vs", pathway_var, "for All Elements with Trendlines")
# Create the ggplot object
p <- ggplot(combined_data, aes(x = !!sym(pathway_var), y = !!sym(conc_var), color = Element)) +
geom_point(size = 0.8) +
geom_smooth(method = "lm", se = TRUE, alpha = 0.20, linewidth = 1.0) +
labs(x = "pathway", y = "nanomolarity", title = plot_title, color = "Workflow") +
scale_color_manual(values = custom_colors) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5), # Center the plot title
)
# Store the plot in the list with a descriptive name
plot_list[[paste(conc_var, pathway_var, sep = "_vs_")]] <- p
}
}
# Print the plots
plot_list
## $p_butyric_nm_abs_vs_Acetyl
## `geom_smooth()` using formula = 'y ~ x'
##
## $p_butyric_nm_rel_vs_Acetyl
## `geom_smooth()` using formula = 'y ~ x'
##
## $p_butyric_nm_abs_vs_sumPaths1
## `geom_smooth()` using formula = 'y ~ x'
##
## $p_butyric_nm_rel_vs_sumPaths1
## `geom_smooth()` using formula = 'y ~ x'
##
## $p_butyric_nm_abs_vs_sumPaths2
## `geom_smooth()` using formula = 'y ~ x'
##
## $p_butyric_nm_rel_vs_sumPaths2
## `geom_smooth()` using formula = 'y ~ x'
f_names <- grep("^f_", names(path_and_conc), value = TRUE)
# Define your variable lists
pathway_graphs <- c("Acetyl", "Lys", "GABA", "Glut", "sumPaths1", "sumPaths2")
conc_graphs <- c("f_butyrate_nm_abs", "f_butyrate_nm_rel")
# Create a data frame to store the correlation results
correlation_results <- data.frame(
pathway_var = character(),
conc_var = character(),
element = character(),
spearman_rho = numeric(),
p_value = numeric(),
stringsAsFactors = FALSE
)
# Nested loops to iterate over combinations of pathway and concentration graphs
for (pathway_var in pathway_graphs) {
for (conc_var in conc_graphs) {
# Create a combined data frame for each combination
combined_data <- do.call(rbind, lapply(f_names, function(merged_element) {
data <- path_and_conc[[merged_element]]
data %>%
select(subject_id, !!sym(pathway_var), !!sym(conc_var)) %>% # Select relevant columns using dplyr's non-standard evaluation
mutate(Element = merged_element) # Add a column to identify the source element
}))
# Calculate Spearman correlation for each element and add to results
for (element in unique(combined_data$Element)) {
element_data <- combined_data %>% filter(Element == element)
# Perform Spearman correlation test
correlation_test <- cor.test(
element_data[[pathway_var]],
element_data[[conc_var]],
method = "spearman",
exact = FALSE,
use = "complete.obs"
)
# Store the results in the data frame
correlation_results <- rbind(
correlation_results,
data.frame(
pathway_var = pathway_var,
conc_var = conc_var,
element = element,
spearman_rho = correlation_test$estimate,
p_value = correlation_test$p.value,
stringsAsFactors = FALSE
)
)
rownames(correlation_results) <- NULL
}
}
}
correlation_results %>%
filter(p_value < 0.05) %>%
mutate(
spearman_rho = round(spearman_rho, 3),
p_value = round(p_value, 4)
) %>%
arrange(desc(spearman_rho))
## pathway_var conc_var element spearman_rho p_value
## 1 Acetyl f_butyrate_nm_rel f_d95 0.307 0.0000
## 2 sumPaths1 f_butyrate_nm_rel f_d95 0.300 0.0000
## 3 Acetyl f_butyrate_nm_rel f_d98 0.298 0.0000
## 4 Acetyl f_butyrate_nm_rel f_d90 0.297 0.0000
## 5 sumPaths1 f_butyrate_nm_rel f_d98 0.297 0.0000
## 6 Acetyl f_butyrate_nm_rel f_d99 0.288 0.0000
## 7 Acetyl f_butyrate_nm_rel f_d100 0.288 0.0000
## 8 sumPaths1 f_butyrate_nm_rel f_d99 0.288 0.0000
## 9 sumPaths1 f_butyrate_nm_rel f_d100 0.288 0.0000
## 10 sumPaths1 f_butyrate_nm_rel f_d90 0.286 0.0000
## 11 sumPaths2 f_butyrate_nm_rel f_d95 0.277 0.0000
## 12 sumPaths2 f_butyrate_nm_rel f_d98 0.270 0.0000
## 13 Acetyl f_butyrate_nm_rel f_d80 0.266 0.0000
## 14 Acetyl f_butyrate_nm_rel f_d90_b_m 0.263 0.0000
## 15 sumPaths2 f_butyrate_nm_rel f_d90 0.262 0.0000
## 16 sumPaths2 f_butyrate_nm_rel f_d99 0.259 0.0000
## 17 Acetyl f_butyrate_nm_rel f_d90_b 0.258 0.0000
## 18 sumPaths2 f_butyrate_nm_rel f_d100 0.258 0.0000
## 19 sumPaths1 f_butyrate_nm_rel f_d90_b_m 0.254 0.0000
## 20 sumPaths1 f_butyrate_nm_abs f_d95 0.249 0.0000
## 21 Acetyl f_butyrate_nm_abs f_d95 0.248 0.0000
## 22 Acetyl f_butyrate_nm_rel f_d80_b 0.245 0.0000
## 23 sumPaths1 f_butyrate_nm_rel f_d90_b 0.245 0.0000
## 24 sumPaths1 f_butyrate_nm_abs f_d98 0.244 0.0000
## 25 sumPaths2 f_butyrate_nm_rel f_d90_b_m 0.239 0.0000
## 26 Acetyl f_butyrate_nm_rel f_d70 0.237 0.0001
## 27 sumPaths1 f_butyrate_nm_abs f_d99 0.237 0.0001
## 28 sumPaths1 f_butyrate_nm_abs f_d100 0.237 0.0001
## 29 Acetyl f_butyrate_nm_abs f_d98 0.234 0.0001
## 30 Acetyl f_butyrate_nm_abs f_d90 0.230 0.0001
## 31 sumPaths2 f_butyrate_nm_abs f_d95 0.229 0.0001
## 32 sumPaths2 f_butyrate_nm_rel f_d90_b 0.229 0.0001
## 33 Acetyl f_butyrate_nm_abs f_d100 0.223 0.0002
## 34 sumPaths1 f_butyrate_nm_rel f_d80 0.223 0.0002
## 35 sumPaths2 f_butyrate_nm_abs f_d98 0.223 0.0002
## 36 Acetyl f_butyrate_nm_abs f_d99 0.222 0.0002
## 37 Acetyl f_butyrate_nm_rel f_d70_b 0.215 0.0003
## 38 sumPaths1 f_butyrate_nm_abs f_d90 0.214 0.0003
## 39 sumPaths2 f_butyrate_nm_abs f_d99 0.212 0.0003
## 40 sumPaths2 f_butyrate_nm_abs f_d100 0.211 0.0003
## 41 Acetyl f_butyrate_nm_rel f_d60 0.209 0.0004
## 42 sumPaths1 f_butyrate_nm_rel f_d80_b 0.198 0.0008
## 43 Acetyl f_butyrate_nm_abs f_d90_b 0.197 0.0009
## 44 sumPaths2 f_butyrate_nm_rel f_d80 0.193 0.0011
## 45 Acetyl f_butyrate_nm_abs f_d90_b_m 0.192 0.0012
## 46 Acetyl f_butyrate_nm_rel f_d50 0.190 0.0013
## 47 Acetyl f_butyrate_nm_rel f_hGA_b_m 0.190 0.0013
## 48 sumPaths2 f_butyrate_nm_abs f_d90 0.190 0.0013
## 49 Acetyl f_butyrate_nm_rel f_hGA_b_fs 0.188 0.0015
## 50 Acetyl f_butyrate_nm_abs f_d80 0.187 0.0016
## 51 Acetyl f_butyrate_nm_abs f_d80_b 0.181 0.0023
## 52 sumPaths1 f_butyrate_nm_rel f_d70 0.180 0.0024
## 53 sumPaths1 f_butyrate_nm_abs f_d90_b 0.178 0.0027
## 54 Acetyl f_butyrate_nm_rel f_d60_b 0.175 0.0031
## 55 sumPaths1 f_butyrate_nm_abs f_d90_b_m 0.175 0.0031
## 56 Acetyl f_butyrate_nm_rel f_hGA_b 0.172 0.0038
## 57 sumPaths2 f_butyrate_nm_rel f_d80_b 0.172 0.0037
## 58 sumPaths2 f_butyrate_nm_abs f_d90_b_m 0.171 0.0039
## 59 sumPaths2 f_butyrate_nm_abs f_d90_b 0.169 0.0043
## 60 Acetyl f_butyrate_nm_rel f_d50_b 0.147 0.0134
## 61 sumPaths1 f_butyrate_nm_rel f_d70_b 0.147 0.0134
## 62 sumPaths2 f_butyrate_nm_rel f_d70 0.144 0.0155
## 63 Acetyl f_butyrate_nm_abs f_d70 0.143 0.0157
## 64 Acetyl f_butyrate_nm_abs f_d70_b 0.139 0.0195
## 65 sumPaths1 f_butyrate_nm_rel f_d60 0.135 0.0228
## 66 sumPaths1 f_butyrate_nm_rel f_hGA_b_m 0.128 0.0314
## 67 sumPaths1 f_butyrate_nm_abs f_d80 0.125 0.0356
## 68 sumPaths2 f_butyrate_nm_rel f_d70_b 0.123 0.0382
## 69 sumPaths1 f_butyrate_nm_abs f_d80_b 0.119 0.0447
## 70 GABA f_butyrate_nm_rel f_d60_b -0.125 0.0362
## 71 Lys f_butyrate_nm_abs f_d40_b -0.129 0.0294
## 72 GABA f_butyrate_nm_abs f_d90 -0.130 0.0284
## 73 GABA f_butyrate_nm_rel f_d90 -0.131 0.0273
## 74 GABA f_butyrate_nm_abs f_d50_b -0.146 0.0137
## 75 GABA f_butyrate_nm_abs f_hGA_b -0.150 0.0118
## 76 Lys f_butyrate_nm_abs f_d80_b -0.155 0.0092
## 77 Lys f_butyrate_nm_rel f_d40_b -0.160 0.0069
## 78 GABA f_butyrate_nm_rel f_hGA_b -0.166 0.0051
## 79 GABA f_butyrate_nm_rel f_d50_b -0.168 0.0045
## 80 GABA f_butyrate_nm_abs f_hGA_b_m -0.169 0.0044
## 81 GABA f_butyrate_nm_abs f_d70_b -0.173 0.0035
## 82 Lys f_butyrate_nm_abs f_d80 -0.177 0.0028
## 83 GABA f_butyrate_nm_abs f_hGA_b_fs -0.178 0.0027
## 84 GABA f_butyrate_nm_rel f_hGA_b_fs -0.178 0.0026
## 85 GABA f_butyrate_nm_rel f_hGA_b_m -0.179 0.0025
## 86 Lys f_butyrate_nm_rel f_d80_b -0.184 0.0019
## 87 Lys f_butyrate_nm_abs f_d70_b -0.185 0.0018
## 88 GABA f_butyrate_nm_rel f_d70_b -0.188 0.0015
## 89 Lys f_butyrate_nm_rel f_d80 -0.206 0.0005
## 90 Lys f_butyrate_nm_abs f_d60_b -0.207 0.0004
## 91 Lys f_butyrate_nm_rel f_d70_b -0.212 0.0003
## 92 GABA f_butyrate_nm_abs f_d80 -0.212 0.0003
## 93 Lys f_butyrate_nm_abs f_d70 -0.215 0.0003
## 94 GABA f_butyrate_nm_abs f_d70 -0.218 0.0002
## 95 GABA f_butyrate_nm_rel f_d80 -0.221 0.0002
## 96 Lys f_butyrate_nm_abs f_hGA_b -0.226 0.0001
## 97 Lys f_butyrate_nm_abs f_hGA_b_fs -0.227 0.0001
## 98 Lys f_butyrate_nm_rel f_d60_b -0.232 0.0001
## 99 Lys f_butyrate_nm_abs f_d50_b -0.233 0.0001
## 100 GABA f_butyrate_nm_abs f_d60 -0.237 0.0001
## 101 GABA f_butyrate_nm_rel f_d70 -0.237 0.0001
## 102 Lys f_butyrate_nm_rel f_d70 -0.239 0.0000
## 103 GABA f_butyrate_nm_rel f_d60 -0.240 0.0000
## 104 Lys f_butyrate_nm_abs f_hGA_b_m -0.248 0.0000
## 105 GABA f_butyrate_nm_abs f_d50 -0.250 0.0000
## 106 GABA f_butyrate_nm_rel f_d50 -0.250 0.0000
## 107 Lys f_butyrate_nm_rel f_hGA_b_fs -0.251 0.0000
## 108 Lys f_butyrate_nm_rel f_hGA_b -0.253 0.0000
## 109 Lys f_butyrate_nm_abs f_d60 -0.256 0.0000
## 110 Lys f_butyrate_nm_rel f_d50_b -0.262 0.0000
## 111 Lys f_butyrate_nm_rel f_hGA_b_m -0.267 0.0000
## 112 Lys f_butyrate_nm_abs f_d50 -0.275 0.0000
## 113 Lys f_butyrate_nm_rel f_d60 -0.286 0.0000
## 114 Lys f_butyrate_nm_rel f_d50 -0.300 0.0000
## [1] pathway_var conc_var element spearman_rho p_value
## <0 rows> (or 0-length row.names)
f_names <- grep("^f_", names(path_and_conc), value = TRUE)
# Define your variable lists
pathway_graphs <- c(
"abfH", # beginning of 4-aminobutyrate pathway
"ghbt",
"abfD",
"kamA", # beginning of lysine pathway
"kamD",
"kamE",
"kdd",
"kce",
"kal",
"atoA",
"atoD",
"gctA", # beginning of Glutarate pathway
"gctB",
"hgCoAdA",
"hgCoAdB",
"hgCoAdC",
"gcdA",
"gcdB", ## note that this gene is not included in the pathway calculations
"but", # beginning of acetyl-CoA pathway
"buk",
"ptb",
"thl",
"bhbd",
"cro",
"bcd", # shared genes
"etfA",
"etfB"
)
conc_graphs <- c("f_butyrate_nm_abs", "f_butyrate_nm_rel")
# Create a data frame to store the correlation results
correlation_results2 <- data.frame(
pathway_var = character(),
conc_var = character(),
element = character(),
spearman_rho = numeric(),
p_value = numeric(),
stringsAsFactors = FALSE
)
# Nested loops to iterate over combinations of pathway and concentration graphs
for (pathway_var in pathway_graphs) {
for (conc_var in conc_graphs) {
# Create a combined data frame for each combination
combined_data <- do.call(rbind, lapply(f_names, function(merged_element) {
data <- genes_and_conc[[merged_element]]
data %>%
select(subject_id, !!sym(pathway_var), !!sym(conc_var)) %>% # Select relevant columns using dplyr's non-standard evaluation
mutate(Element = merged_element) # Add a column to identify the source element
}))
# Calculate Spearman correlation for each element and add to results
for (element in unique(combined_data$Element)) {
element_data <- combined_data %>% filter(Element == element)
# Perform Spearman correlation test
correlation_test <- cor.test(
element_data[[pathway_var]],
element_data[[conc_var]],
method = "spearman",
exact = FALSE,
use = "complete.obs"
)
# Store the results in the data frame
correlation_results2 <- rbind(
correlation_results2,
data.frame(
pathway_var = pathway_var,
conc_var = conc_var,
element = element,
spearman_rho = correlation_test$estimate,
p_value = correlation_test$p.value,
stringsAsFactors = FALSE
)
)
}
}
}
correlation_results2 %>%
filter(p_value < 0.05) %>%
mutate(
spearman_rho = round(spearman_rho, 3),
p_value = round(p_value, 4)
) %>%
arrange(desc(spearman_rho))
## pathway_var conc_var element spearman_rho p_value
## rho974 etfA f_butyrate_nm_rel f_d95 0.356 0.0000
## rho975 etfA f_butyrate_nm_rel f_d98 0.353 0.0000
## rho977 etfA f_butyrate_nm_rel f_d100 0.352 0.0000
## rho976 etfA f_butyrate_nm_rel f_d99 0.351 0.0000
## rho861 bhbd f_butyrate_nm_rel f_d98 0.347 0.0000
## rho860 bhbd f_butyrate_nm_rel f_d95 0.343 0.0000
## rho822 thl f_butyrate_nm_rel f_d95 0.334 0.0000
## rho862 bhbd f_butyrate_nm_rel f_d99 0.333 0.0000
## rho1014 etfB f_butyrate_nm_rel f_d99 0.333 0.0000
## rho1015 etfB f_butyrate_nm_rel f_d100 0.333 0.0000
## rho823 thl f_butyrate_nm_rel f_d98 0.332 0.0000
## rho863 bhbd f_butyrate_nm_rel f_d100 0.332 0.0000
## rho1013 etfB f_butyrate_nm_rel f_d98 0.332 0.0000
## rho973 etfA f_butyrate_nm_rel f_d90 0.331 0.0000
## rho859 bhbd f_butyrate_nm_rel f_d90 0.330 0.0000
## rho707 but f_butyrate_nm_rel f_d90 0.329 0.0000
## rho1012 etfB f_butyrate_nm_rel f_d95 0.327 0.0000
## rho708 but f_butyrate_nm_rel f_d95 0.325 0.0000
## rho825 thl f_butyrate_nm_rel f_d100 0.325 0.0000
## rho824 thl f_butyrate_nm_rel f_d99 0.324 0.0000
## rho1011 etfB f_butyrate_nm_rel f_d90 0.321 0.0000
## rho709 but f_butyrate_nm_rel f_d98 0.320 0.0000
## rho710 but f_butyrate_nm_rel f_d99 0.315 0.0000
## rho711 but f_butyrate_nm_rel f_d100 0.315 0.0000
## rho936 bcd f_butyrate_nm_rel f_d95 0.310 0.0000
## rho938 bcd f_butyrate_nm_rel f_d99 0.310 0.0000
## rho939 bcd f_butyrate_nm_rel f_d100 0.310 0.0000
## rho937 bcd f_butyrate_nm_rel f_d98 0.309 0.0000
## rho972 etfA f_butyrate_nm_rel f_d80 0.308 0.0000
## rho858 bhbd f_butyrate_nm_rel f_d80 0.306 0.0000
## rho706 but f_butyrate_nm_rel f_d80 0.304 0.0000
## rho721 but f_butyrate_nm_rel f_d90_b_m 0.302 0.0000
## rho821 thl f_butyrate_nm_rel f_d90 0.300 0.0000
## rho717 but f_butyrate_nm_rel f_d90_b 0.299 0.0000
## rho873 bhbd f_butyrate_nm_rel f_d90_b_m 0.297 0.0000
## rho955 etfA f_butyrate_nm_abs f_d95 0.295 0.0000
## rho869 bhbd f_butyrate_nm_rel f_d90_b 0.293 0.0000
## rho935 bcd f_butyrate_nm_rel f_d90 0.291 0.0000
## rho956 etfA f_butyrate_nm_abs f_d98 0.291 0.0000
## rho842 bhbd f_butyrate_nm_abs f_d98 0.289 0.0000
## rho898 cro f_butyrate_nm_rel f_d95 0.289 0.0000
## rho868 bhbd f_butyrate_nm_rel f_d80_b 0.288 0.0000
## rho957 etfA f_butyrate_nm_abs f_d99 0.286 0.0000
## rho958 etfA f_butyrate_nm_abs f_d100 0.286 0.0000
## rho803 thl f_butyrate_nm_abs f_d95 0.285 0.0000
## rho841 bhbd f_butyrate_nm_abs f_d95 0.284 0.0000
## rho1021 etfB f_butyrate_nm_rel f_d90_b 0.284 0.0000
## rho897 cro f_butyrate_nm_rel f_d90 0.283 0.0000
## rho857 bhbd f_butyrate_nm_rel f_d70 0.280 0.0000
## rho843 bhbd f_butyrate_nm_abs f_d99 0.279 0.0000
## rho820 thl f_butyrate_nm_rel f_d80 0.278 0.0000
## rho844 bhbd f_butyrate_nm_abs f_d100 0.278 0.0000
## rho899 cro f_butyrate_nm_rel f_d98 0.278 0.0000
## rho995 etfB f_butyrate_nm_abs f_d99 0.277 0.0000
## rho1025 etfB f_butyrate_nm_rel f_d90_b_m 0.277 0.0000
## rho996 etfB f_butyrate_nm_abs f_d100 0.276 0.0000
## rho804 thl f_butyrate_nm_abs f_d98 0.275 0.0000
## rho716 but f_butyrate_nm_rel f_d80_b 0.273 0.0000
## rho994 etfB f_butyrate_nm_abs f_d98 0.271 0.0000
## rho993 etfB f_butyrate_nm_abs f_d95 0.270 0.0000
## rho856 bhbd f_butyrate_nm_rel f_d60 0.269 0.0000
## rho911 cro f_butyrate_nm_rel f_d90_b_m 0.267 0.0000
## rho920 bcd f_butyrate_nm_abs f_d100 0.267 0.0000
## rho840 bhbd f_butyrate_nm_abs f_d90 0.266 0.0000
## rho918 bcd f_butyrate_nm_abs f_d98 0.266 0.0000
## rho919 bcd f_butyrate_nm_abs f_d99 0.266 0.0000
## rho705 but f_butyrate_nm_rel f_d70 0.265 0.0000
## rho945 bcd f_butyrate_nm_rel f_d90_b 0.265 0.0000
## rho983 etfA f_butyrate_nm_rel f_d90_b 0.265 0.0000
## rho987 etfA f_butyrate_nm_rel f_d90_b_m 0.265 0.0000
## rho949 bcd f_butyrate_nm_rel f_d90_b_m 0.264 0.0000
## rho855 bhbd f_butyrate_nm_rel f_d50 0.263 0.0000
## rho954 etfA f_butyrate_nm_abs f_d90 0.263 0.0000
## rho819 thl f_butyrate_nm_rel f_d70 0.262 0.0000
## rho907 cro f_butyrate_nm_rel f_d90_b 0.262 0.0000
## rho1010 etfB f_butyrate_nm_rel f_d80 0.262 0.0000
## rho805 thl f_butyrate_nm_abs f_d99 0.261 0.0000
## rho806 thl f_butyrate_nm_abs f_d100 0.261 0.0000
## rho688 but f_butyrate_nm_abs f_d90 0.259 0.0000
## rho689 but f_butyrate_nm_abs f_d95 0.259 0.0000
## rho867 bhbd f_butyrate_nm_rel f_d70_b 0.258 0.0000
## rho992 etfB f_butyrate_nm_abs f_d90 0.258 0.0000
## rho971 etfA f_butyrate_nm_rel f_d70 0.256 0.0000
## rho835 thl f_butyrate_nm_rel f_d90_b_m 0.255 0.0000
## rho900 cro f_butyrate_nm_rel f_d99 0.254 0.0000
## rho690 but f_butyrate_nm_abs f_d98 0.252 0.0000
## rho901 cro f_butyrate_nm_rel f_d100 0.252 0.0000
## rho1020 etfB f_butyrate_nm_rel f_d80_b 0.251 0.0000
## rho831 thl f_butyrate_nm_rel f_d90_b 0.250 0.0000
## rho692 but f_butyrate_nm_abs f_d100 0.247 0.0000
## rho917 bcd f_butyrate_nm_abs f_d95 0.247 0.0000
## rho691 but f_butyrate_nm_abs f_d99 0.246 0.0000
## rho834 thl f_butyrate_nm_rel f_hGA_b_m 0.246 0.0000
## rho934 bcd f_butyrate_nm_rel f_d80 0.246 0.0000
## rho896 cro f_butyrate_nm_rel f_d80 0.245 0.0000
## rho850 bhbd f_butyrate_nm_abs f_d90_b 0.243 0.0000
## rho872 bhbd f_butyrate_nm_rel f_hGA_b_m 0.243 0.0000
## rho906 cro f_butyrate_nm_rel f_d80_b 0.243 0.0000
## rho802 thl f_butyrate_nm_abs f_d90 0.242 0.0000
## rho818 thl f_butyrate_nm_rel f_d60 0.242 0.0000
## rho982 etfA f_butyrate_nm_rel f_d80_b 0.242 0.0000
## rho829 thl f_butyrate_nm_rel f_d70_b 0.240 0.0000
## rho830 thl f_butyrate_nm_rel f_d80_b 0.239 0.0000
## rho854 bhbd f_butyrate_nm_abs f_d90_b_m 0.239 0.0000
## rho833 thl f_butyrate_nm_rel f_hGA_b_fs 0.237 0.0001
## rho839 bhbd f_butyrate_nm_abs f_d80 0.237 0.0001
## rho879 cro f_butyrate_nm_abs f_d95 0.236 0.0001
## rho817 thl f_butyrate_nm_rel f_d50 0.235 0.0001
## rho944 bcd f_butyrate_nm_rel f_d80_b 0.235 0.0001
## rho970 etfA f_butyrate_nm_rel f_d60 0.235 0.0001
## rho849 bhbd f_butyrate_nm_abs f_d80_b 0.234 0.0001
## rho871 bhbd f_butyrate_nm_rel f_hGA_b_fs 0.231 0.0001
## rho969 etfA f_butyrate_nm_rel f_d50 0.230 0.0001
## rho832 thl f_butyrate_nm_rel f_hGA_b 0.227 0.0001
## rho866 bhbd f_butyrate_nm_rel f_d60_b 0.227 0.0001
## rho704 but f_butyrate_nm_rel f_d60 0.226 0.0001
## rho870 bhbd f_butyrate_nm_rel f_hGA_b 0.226 0.0001
## rho895 cro f_butyrate_nm_rel f_d70 0.226 0.0001
## rho1019 etfB f_butyrate_nm_rel f_d70_b 0.226 0.0001
## rho880 cro f_butyrate_nm_abs f_d98 0.225 0.0001
## rho953 etfA f_butyrate_nm_abs f_d80 0.225 0.0001
## rho865 bhbd f_butyrate_nm_rel f_d50_b 0.224 0.0001
## rho1018 etfB f_butyrate_nm_rel f_d60_b 0.224 0.0001
## rho1009 etfB f_butyrate_nm_rel f_d70 0.223 0.0002
## rho878 cro f_butyrate_nm_abs f_d90 0.221 0.0002
## rho698 but f_butyrate_nm_abs f_d90_b 0.220 0.0002
## rho828 thl f_butyrate_nm_rel f_d60_b 0.220 0.0002
## rho702 but f_butyrate_nm_abs f_d90_b_m 0.216 0.0003
## rho715 but f_butyrate_nm_rel f_d70_b 0.216 0.0002
## rho703 but f_butyrate_nm_rel f_d50 0.215 0.0003
## rho687 but f_butyrate_nm_abs f_d80 0.213 0.0003
## rho864 bhbd f_butyrate_nm_rel f_d40_b 0.212 0.0003
## rho905 cro f_butyrate_nm_rel f_d70_b 0.211 0.0004
## rho979 etfA f_butyrate_nm_rel f_d50_b 0.211 0.0003
## rho801 thl f_butyrate_nm_abs f_d80 0.206 0.0005
## rho894 cro f_butyrate_nm_rel f_d60 0.205 0.0005
## rho933 bcd f_butyrate_nm_rel f_d70 0.205 0.0005
## rho881 cro f_butyrate_nm_abs f_d99 0.204 0.0006
## rho827 thl f_butyrate_nm_rel f_d50_b 0.203 0.0006
## rho882 cro f_butyrate_nm_abs f_d100 0.202 0.0006
## rho893 cro f_butyrate_nm_rel f_d50 0.201 0.0007
## rho910 cro f_butyrate_nm_rel f_hGA_b_m 0.200 0.0007
## rho888 cro f_butyrate_nm_abs f_d90_b 0.198 0.0008
## rho1002 etfB f_butyrate_nm_abs f_d90_b 0.198 0.0008
## rho981 etfA f_butyrate_nm_rel f_d70_b 0.196 0.0009
## rho812 thl f_butyrate_nm_abs f_d90_b 0.195 0.0010
## rho816 thl f_butyrate_nm_abs f_d90_b_m 0.195 0.0010
## rho892 cro f_butyrate_nm_abs f_d90_b_m 0.195 0.0010
## rho848 bhbd f_butyrate_nm_abs f_d70_b 0.194 0.0010
## rho904 cro f_butyrate_nm_rel f_d60_b 0.194 0.0010
## rho916 bcd f_butyrate_nm_abs f_d90 0.194 0.0011
## rho697 but f_butyrate_nm_abs f_d80_b 0.193 0.0011
## rho838 bhbd f_butyrate_nm_abs f_d70 0.193 0.0011
## rho1007 etfB f_butyrate_nm_rel f_d50 0.192 0.0012
## rho719 but f_butyrate_nm_rel f_hGA_b_fs 0.190 0.0013
## rho712 but f_butyrate_nm_rel f_d40_b 0.188 0.0015
## rho926 bcd f_butyrate_nm_abs f_d90_b 0.185 0.0018
## rho964 etfA f_butyrate_nm_abs f_d90_b 0.184 0.0018
## rho1008 etfB f_butyrate_nm_rel f_d60 0.184 0.0019
## rho1006 etfB f_butyrate_nm_abs f_d90_b_m 0.183 0.0020
## rho800 thl f_butyrate_nm_abs f_d70 0.182 0.0021
## rho811 thl f_butyrate_nm_abs f_d80_b 0.181 0.0023
## rho1017 etfB f_butyrate_nm_rel f_d50_b 0.180 0.0023
## rho826 thl f_butyrate_nm_rel f_d40_b 0.178 0.0026
## rho837 bhbd f_butyrate_nm_abs f_d60 0.177 0.0029
## rho930 bcd f_butyrate_nm_abs f_d90_b_m 0.177 0.0027
## rho714 but f_butyrate_nm_rel f_d60_b 0.175 0.0031
## rho810 thl f_butyrate_nm_abs f_d70_b 0.173 0.0035
## rho943 bcd f_butyrate_nm_rel f_d70_b 0.172 0.0037
## rho887 cro f_butyrate_nm_abs f_d80_b 0.171 0.0040
## rho908 cro f_butyrate_nm_rel f_hGA_b 0.171 0.0039
## rho909 cro f_butyrate_nm_rel f_hGA_b_fs 0.171 0.0040
## rho1024 etfB f_butyrate_nm_rel f_hGA_b_m 0.171 0.0040
## rho9 abfH f_butyrate_nm_abs f_d40_b 0.170 0.0042
## rho903 cro f_butyrate_nm_rel f_d50_b 0.170 0.0042
## rho713 but f_butyrate_nm_rel f_d50_b 0.169 0.0043
## rho968 etfA f_butyrate_nm_abs f_d90_b_m 0.169 0.0043
## rho980 etfA f_butyrate_nm_rel f_d60_b 0.169 0.0044
## rho1001 etfB f_butyrate_nm_abs f_d80_b 0.168 0.0045
## rho814 thl f_butyrate_nm_abs f_hGA_b_fs 0.167 0.0049
## rho815 thl f_butyrate_nm_abs f_hGA_b_m 0.166 0.0051
## rho28 abfH f_butyrate_nm_rel f_d40_b 0.165 0.0054
## rho948 bcd f_butyrate_nm_rel f_hGA_b_m 0.164 0.0055
## rho991 etfB f_butyrate_nm_abs f_d80 0.163 0.0059
## rho836 bhbd f_butyrate_nm_abs f_d50 0.162 0.0062
## rho960 etfA f_butyrate_nm_abs f_d50_b 0.162 0.0064
## rho946 bcd f_butyrate_nm_rel f_hGA_b 0.161 0.0066
## rho963 etfA f_butyrate_nm_abs f_d80_b 0.161 0.0067
## rho877 cro f_butyrate_nm_abs f_d80 0.160 0.0071
## rho932 bcd f_butyrate_nm_rel f_d60 0.160 0.0071
## rho999 etfB f_butyrate_nm_abs f_d60_b 0.160 0.0070
## rho1023 etfB f_butyrate_nm_rel f_hGA_b_fs 0.160 0.0068
## rho720 but f_butyrate_nm_rel f_hGA_b_m 0.159 0.0074
## rho1022 etfB f_butyrate_nm_rel f_hGA_b 0.159 0.0074
## rho847 bhbd f_butyrate_nm_abs f_d60_b 0.158 0.0077
## rho799 thl f_butyrate_nm_abs f_d60 0.157 0.0082
## rho853 bhbd f_butyrate_nm_abs f_hGA_b_m 0.157 0.0083
## rho852 bhbd f_butyrate_nm_abs f_hGA_b_fs 0.156 0.0087
## rho1016 etfB f_butyrate_nm_rel f_d40_b 0.155 0.0089
## rho809 thl f_butyrate_nm_abs f_d60_b 0.152 0.0105
## rho851 bhbd f_butyrate_nm_abs f_hGA_b 0.152 0.0105
## rho947 bcd f_butyrate_nm_rel f_hGA_b_fs 0.152 0.0105
## rho952 etfA f_butyrate_nm_abs f_d70 0.152 0.0104
## rho846 bhbd f_butyrate_nm_abs f_d50_b 0.151 0.0110
## rho1000 etfB f_butyrate_nm_abs f_d70_b 0.150 0.0115
## rho813 thl f_butyrate_nm_abs f_hGA_b 0.149 0.0118
## rho986 etfA f_butyrate_nm_rel f_hGA_b_m 0.149 0.0119
## rho985 etfA f_butyrate_nm_rel f_hGA_b_fs 0.148 0.0126
## rho931 bcd f_butyrate_nm_rel f_d50 0.147 0.0131
## rho680 gcdB f_butyrate_nm_rel f_hGA_b 0.146 0.0142
## rho682 gcdB f_butyrate_nm_rel f_hGA_b_m 0.146 0.0140
## rho798 thl f_butyrate_nm_abs f_d50 0.146 0.0140
## rho925 bcd f_butyrate_nm_abs f_d80_b 0.146 0.0138
## rho686 but f_butyrate_nm_abs f_d70 0.143 0.0160
## rho718 but f_butyrate_nm_rel f_hGA_b 0.137 0.0210
## rho681 gcdB f_butyrate_nm_rel f_hGA_b_fs 0.136 0.0218
## rho662 gcdB f_butyrate_nm_abs f_hGA_b_fs 0.135 0.0232
## rho808 thl f_butyrate_nm_abs f_d50_b 0.135 0.0235
## rho661 gcdB f_butyrate_nm_abs f_hGA_b 0.134 0.0239
## rho845 bhbd f_butyrate_nm_abs f_d40_b 0.134 0.0247
## rho886 cro f_butyrate_nm_abs f_d70_b 0.132 0.0267
## rho902 cro f_butyrate_nm_rel f_d40_b 0.132 0.0260
## rho942 bcd f_butyrate_nm_rel f_d60_b 0.132 0.0266
## rho984 etfA f_butyrate_nm_rel f_hGA_b 0.131 0.0272
## rho876 cro f_butyrate_nm_abs f_d70 0.130 0.0284
## rho951 etfA f_butyrate_nm_abs f_d60 0.130 0.0287
## rho915 bcd f_butyrate_nm_abs f_d80 0.129 0.0302
## rho978 etfA f_butyrate_nm_rel f_d40_b 0.125 0.0356
## rho675 gcdB f_butyrate_nm_rel f_d50_b 0.124 0.0376
## rho656 gcdB f_butyrate_nm_abs f_d50_b 0.121 0.0415
## rho950 etfA f_butyrate_nm_abs f_d50 0.121 0.0418
## rho962 etfA f_butyrate_nm_abs f_d70_b 0.121 0.0423
## rho657 gcdB f_butyrate_nm_abs f_d60_b 0.119 0.0450
## rho663 gcdB f_butyrate_nm_abs f_hGA_b_m 0.119 0.0449
## rho676 gcdB f_butyrate_nm_rel f_d60_b 0.118 0.0477
## rho990 etfB f_butyrate_nm_abs f_d70 0.117 0.0488
## rho2 abfH f_butyrate_nm_abs f_d70 -0.118 0.0473
## rho53 ghbt f_butyrate_nm_abs f_hGA_b -0.118 0.0476
## rho419 gctA f_butyrate_nm_abs f_d60 -0.119 0.0451
## rho418 gctA f_butyrate_nm_abs f_d50 -0.121 0.0422
## rho533 hgCoAdB f_butyrate_nm_abs f_d60 -0.121 0.0422
## rho570 hgCoAdC f_butyrate_nm_abs f_d50 -0.122 0.0405
## rho732 buk f_butyrate_nm_abs f_d50_b -0.125 0.0356
## rho19 abfH f_butyrate_nm_rel f_d50 -0.126 0.0343
## rho74 ghbt f_butyrate_nm_rel f_hGA_b_m -0.126 0.0345
## rho509 hgCoAdA f_butyrate_nm_abs f_hGA_b -0.128 0.0315
## rho751 buk f_butyrate_nm_rel f_d50_b -0.128 0.0312
## rho531 hgCoAdA f_butyrate_nm_rel f_d90_b_m -0.129 0.0304
## rho626 gcdA f_butyrate_nm_abs f_d90_b_m -0.129 0.0305
## rho20 abfH f_butyrate_nm_rel f_d60 -0.130 0.0283
## rho55 ghbt f_butyrate_nm_abs f_hGA_b_m -0.130 0.0287
## rho510 hgCoAdA f_butyrate_nm_abs f_hGA_b_fs -0.130 0.0283
## rho622 gcdA f_butyrate_nm_abs f_d90_b -0.130 0.0292
## rho507 hgCoAdA f_butyrate_nm_abs f_d80_b -0.131 0.0279
## rho511 hgCoAdA f_butyrate_nm_abs f_hGA_b_m -0.132 0.0264
## rho60 ghbt f_butyrate_nm_rel f_d80 -0.133 0.0252
## rho506 hgCoAdA f_butyrate_nm_abs f_d70_b -0.133 0.0256
## rho742 buk f_butyrate_nm_rel f_d60 -0.134 0.0245
## rho3 abfH f_butyrate_nm_abs f_d80 -0.135 0.0232
## rho89 abfD f_butyrate_nm_abs f_d80_b -0.136 0.0225
## rho308 kal f_butyrate_nm_abs f_d90 -0.136 0.0218
## rho505 hgCoAdA f_butyrate_nm_abs f_d60_b -0.136 0.0223
## rho31 abfH f_butyrate_nm_rel f_d70_b -0.137 0.0208
## rho108 abfD f_butyrate_nm_rel f_d80_b -0.137 0.0209
## rho251 kdd f_butyrate_nm_rel f_d90 -0.137 0.0215
## rho99 abfD f_butyrate_nm_rel f_d90 -0.138 0.0201
## rho524 hgCoAdA f_butyrate_nm_rel f_d60_b -0.138 0.0199
## rho80 abfD f_butyrate_nm_abs f_d90 -0.139 0.0190
## rho165 kamD f_butyrate_nm_abs f_d80_b -0.140 0.0184
## rho68 ghbt f_butyrate_nm_rel f_d60_b -0.142 0.0172
## rho73 ghbt f_butyrate_nm_rel f_hGA_b_fs -0.143 0.0162
## rho526 hgCoAdA f_butyrate_nm_rel f_d80_b -0.143 0.0160
## rho529 hgCoAdA f_butyrate_nm_rel f_hGA_b_fs -0.143 0.0160
## rho525 hgCoAdA f_butyrate_nm_rel f_d70_b -0.145 0.0149
## rho528 hgCoAdA f_butyrate_nm_rel f_hGA_b -0.145 0.0148
## rho48 ghbt f_butyrate_nm_abs f_d50_b -0.147 0.0134
## rho117 kamA f_butyrate_nm_abs f_d80 -0.150 0.0116
## rho530 hgCoAdA f_butyrate_nm_rel f_hGA_b_m -0.150 0.0115
## rho289 kce f_butyrate_nm_rel f_d90 -0.151 0.0112
## rho381 atoD f_butyrate_nm_abs f_d60 -0.151 0.0111
## rho21 abfH f_butyrate_nm_rel f_d70 -0.152 0.0104
## rho175 kamD f_butyrate_nm_rel f_d90 -0.152 0.0106
## rho193 kamE f_butyrate_nm_abs f_d80 -0.158 0.0078
## rho22 abfH f_butyrate_nm_rel f_d80 -0.159 0.0076
## rho67 ghbt f_butyrate_nm_rel f_d50_b -0.160 0.0070
## rho203 kamE f_butyrate_nm_abs f_d80_b -0.160 0.0072
## rho91 abfD f_butyrate_nm_abs f_hGA_b -0.161 0.0067
## rho723 buk f_butyrate_nm_abs f_d60 -0.161 0.0066
## rho741 buk f_butyrate_nm_rel f_d50 -0.161 0.0065
## rho344 atoA f_butyrate_nm_abs f_d70 -0.162 0.0063
## rho88 abfD f_butyrate_nm_abs f_d70_b -0.163 0.0058
## rho92 abfD f_butyrate_nm_abs f_hGA_b_fs -0.163 0.0060
## rho184 kamD f_butyrate_nm_rel f_d80_b -0.163 0.0059
## rho551 hgCoAdB f_butyrate_nm_rel f_d50 -0.163 0.0059
## rho87 abfD f_butyrate_nm_abs f_d60_b -0.164 0.0057
## rho333 kal f_butyrate_nm_rel f_d50_b -0.164 0.0057
## rho332 kal f_butyrate_nm_rel f_d40_b -0.165 0.0055
## rho86 abfD f_butyrate_nm_abs f_d50_b -0.167 0.0049
## rho106 abfD f_butyrate_nm_rel f_d60_b -0.168 0.0045
## rho85 abfD f_butyrate_nm_abs f_d40_b -0.170 0.0042
## rho327 kal f_butyrate_nm_rel f_d90 -0.170 0.0041
## rho93 abfD f_butyrate_nm_abs f_hGA_b_m -0.171 0.0040
## rho107 abfD f_butyrate_nm_rel f_d70_b -0.172 0.0038
## rho561 hgCoAdB f_butyrate_nm_rel f_d50_b -0.172 0.0038
## rho769 ptb f_butyrate_nm_abs f_d40_b -0.173 0.0035
## rho110 abfD f_butyrate_nm_rel f_hGA_b -0.174 0.0034
## rho111 abfD f_butyrate_nm_rel f_hGA_b_fs -0.174 0.0034
## rho105 abfD f_butyrate_nm_rel f_d50_b -0.175 0.0031
## rho400 atoD f_butyrate_nm_rel f_d60 -0.176 0.0030
## rho788 ptb f_butyrate_nm_rel f_d40_b -0.176 0.0029
## rho54 ghbt f_butyrate_nm_abs f_hGA_b_fs -0.177 0.0029
## rho542 hgCoAdB f_butyrate_nm_abs f_d50_b -0.177 0.0028
## rho104 abfD f_butyrate_nm_rel f_d40_b -0.178 0.0027
## rho112 abfD f_butyrate_nm_rel f_hGA_b_m -0.178 0.0027
## rho212 kamE f_butyrate_nm_rel f_d80 -0.178 0.0026
## rho136 kamA f_butyrate_nm_rel f_d80 -0.179 0.0025
## rho155 kamD f_butyrate_nm_abs f_d80 -0.179 0.0026
## rho731 buk f_butyrate_nm_abs f_d40_b -0.179 0.0025
## rho222 kamE f_butyrate_nm_rel f_d80_b -0.181 0.0022
## rho339 kal f_butyrate_nm_rel f_hGA_b_fs -0.181 0.0023
## rho532 hgCoAdB f_butyrate_nm_abs f_d50 -0.181 0.0023
## rho363 atoA f_butyrate_nm_rel f_d70 -0.182 0.0021
## rho750 buk f_butyrate_nm_rel f_d40_b -0.183 0.0020
## rho390 atoD f_butyrate_nm_abs f_d50_b -0.184 0.0019
## rho338 kal f_butyrate_nm_rel f_hGA_b -0.185 0.0017
## rho199 kamE f_butyrate_nm_abs f_d40_b -0.188 0.0015
## rho201 kamE f_butyrate_nm_abs f_d60_b -0.188 0.0015
## rho313 kal f_butyrate_nm_abs f_d40_b -0.188 0.0015
## rho314 kal f_butyrate_nm_abs f_d50_b -0.188 0.0015
## rho320 kal f_butyrate_nm_abs f_hGA_b_fs -0.188 0.0015
## rho340 kal f_butyrate_nm_rel f_hGA_b_m -0.188 0.0015
## rho722 buk f_butyrate_nm_abs f_d50 -0.188 0.0015
## rho200 kamE f_butyrate_nm_abs f_d50_b -0.189 0.0014
## rho202 kamE f_butyrate_nm_abs f_d70_b -0.189 0.0014
## rho205 kamE f_butyrate_nm_abs f_hGA_b -0.189 0.0014
## rho206 kamE f_butyrate_nm_abs f_hGA_b_fs -0.189 0.0014
## rho129 kamA f_butyrate_nm_abs f_hGA_b -0.192 0.0012
## rho130 kamA f_butyrate_nm_abs f_hGA_b_fs -0.192 0.0012
## rho319 kal f_butyrate_nm_abs f_hGA_b -0.193 0.0011
## rho192 kamE f_butyrate_nm_abs f_d70 -0.195 0.0010
## rho321 kal f_butyrate_nm_abs f_hGA_b_m -0.195 0.0010
## rho395 atoD f_butyrate_nm_abs f_hGA_b -0.195 0.0010
## rho241 kdd f_butyrate_nm_abs f_d80_b -0.198 0.0008
## rho560 hgCoAdB f_butyrate_nm_rel f_d40_b -0.199 0.0007
## rho131 kamA f_butyrate_nm_abs f_hGA_b_m -0.200 0.0007
## rho190 kamE f_butyrate_nm_abs f_d50 -0.200 0.0007
## rho191 kamE f_butyrate_nm_abs f_d60 -0.200 0.0007
## rho396 atoD f_butyrate_nm_abs f_hGA_b_fs -0.200 0.0007
## rho409 atoD f_butyrate_nm_rel f_d50_b -0.200 0.0007
## rho79 abfD f_butyrate_nm_abs f_d80 -0.201 0.0007
## rho125 kamA f_butyrate_nm_abs f_d60_b -0.201 0.0007
## rho161 kamD f_butyrate_nm_abs f_d40_b -0.201 0.0007
## rho167 kamD f_butyrate_nm_abs f_hGA_b -0.201 0.0007
## rho116 kamA f_butyrate_nm_abs f_d70 -0.202 0.0006
## rho124 kamA f_butyrate_nm_abs f_d50_b -0.202 0.0006
## rho126 kamA f_butyrate_nm_abs f_d70_b -0.202 0.0006
## rho162 kamD f_butyrate_nm_abs f_d50_b -0.202 0.0006
## rho207 kamE f_butyrate_nm_abs f_hGA_b_m -0.202 0.0006
## rho541 hgCoAdB f_butyrate_nm_abs f_d40_b -0.202 0.0006
## rho163 kamD f_butyrate_nm_abs f_d60_b -0.203 0.0006
## rho164 kamD f_butyrate_nm_abs f_d70_b -0.203 0.0006
## rho168 kamD f_butyrate_nm_abs f_hGA_b_fs -0.203 0.0006
## rho154 kamD f_butyrate_nm_abs f_d70 -0.204 0.0006
## rho244 kdd f_butyrate_nm_abs f_hGA_b_fs -0.204 0.0006
## rho123 kamA f_butyrate_nm_abs f_d40_b -0.205 0.0005
## rho239 kdd f_butyrate_nm_abs f_d60_b -0.205 0.0005
## rho240 kdd f_butyrate_nm_abs f_d70_b -0.205 0.0005
## rho114 kamA f_butyrate_nm_abs f_d50 -0.206 0.0005
## rho174 kamD f_butyrate_nm_rel f_d80 -0.207 0.0005
## rho211 kamE f_butyrate_nm_rel f_d70 -0.207 0.0004
## rho218 kamE f_butyrate_nm_rel f_d40_b -0.208 0.0004
## rho220 kamE f_butyrate_nm_rel f_d60_b -0.208 0.0004
## rho115 kamA f_butyrate_nm_abs f_d60 -0.209 0.0004
## rho219 kamE f_butyrate_nm_rel f_d50_b -0.209 0.0004
## rho389 atoD f_butyrate_nm_abs f_d40_b -0.209 0.0004
## rho221 kamE f_butyrate_nm_rel f_d70_b -0.210 0.0004
## rho224 kamE f_butyrate_nm_rel f_hGA_b -0.210 0.0004
## rho225 kamE f_butyrate_nm_rel f_hGA_b_fs -0.210 0.0004
## rho209 kamE f_butyrate_nm_rel f_d50 -0.212 0.0003
## rho210 kamE f_butyrate_nm_rel f_d60 -0.212 0.0003
## rho231 kdd f_butyrate_nm_abs f_d80 -0.212 0.0003
## rho78 abfD f_butyrate_nm_abs f_d70 -0.213 0.0003
## rho169 kamD f_butyrate_nm_abs f_hGA_b_m -0.213 0.0003
## rho187 kamD f_butyrate_nm_rel f_hGA_b_fs -0.213 0.0003
## rho98 abfD f_butyrate_nm_rel f_d80 -0.214 0.0003
## rho186 kamD f_butyrate_nm_rel f_hGA_b -0.214 0.0003
## rho243 kdd f_butyrate_nm_abs f_hGA_b -0.214 0.0003
## rho148 kamA f_butyrate_nm_rel f_hGA_b -0.215 0.0003
## rho153 kamD f_butyrate_nm_abs f_d60 -0.215 0.0003
## rho180 kamD f_butyrate_nm_rel f_d40_b -0.215 0.0003
## rho307 kal f_butyrate_nm_abs f_d80 -0.215 0.0003
## rho40 ghbt f_butyrate_nm_abs f_d70 -0.216 0.0002
## rho149 kamA f_butyrate_nm_rel f_hGA_b_fs -0.216 0.0003
## rho181 kamD f_butyrate_nm_rel f_d50_b -0.216 0.0002
## rho182 kamD f_butyrate_nm_rel f_d60_b -0.216 0.0002
## rho380 atoD f_butyrate_nm_abs f_d50 -0.216 0.0003
## rho183 kamD f_butyrate_nm_rel f_d70_b -0.217 0.0002
## rho226 kamE f_butyrate_nm_rel f_hGA_b_m -0.217 0.0002
## rho279 kce f_butyrate_nm_abs f_d80_b -0.217 0.0002
## rho415 atoD f_butyrate_nm_rel f_hGA_b_fs -0.217 0.0002
## rho336 kal f_butyrate_nm_rel f_d80_b -0.218 0.0002
## rho414 atoD f_butyrate_nm_rel f_hGA_b -0.218 0.0002
## rho150 kamA f_butyrate_nm_rel f_hGA_b_m -0.219 0.0002
## rho152 kamD f_butyrate_nm_abs f_d50 -0.219 0.0002
## rho316 kal f_butyrate_nm_abs f_d70_b -0.219 0.0002
## rho335 kal f_butyrate_nm_rel f_d70_b -0.219 0.0002
## rho317 kal f_butyrate_nm_abs f_d80_b -0.220 0.0002
## rho77 abfD f_butyrate_nm_abs f_d60 -0.221 0.0002
## rho353 atoA f_butyrate_nm_abs f_d60_b -0.221 0.0002
## rho358 atoA f_butyrate_nm_abs f_hGA_b_fs -0.221 0.0002
## rho352 atoA f_butyrate_nm_abs f_d50_b -0.222 0.0002
## rho357 atoA f_butyrate_nm_abs f_hGA_b -0.222 0.0002
## rho47 ghbt f_butyrate_nm_abs f_d40_b -0.223 0.0002
## rho135 kamA f_butyrate_nm_rel f_d70 -0.223 0.0002
## rho144 kamA f_butyrate_nm_rel f_d60_b -0.223 0.0002
## rho188 kamD f_butyrate_nm_rel f_hGA_b_m -0.223 0.0002
## rho275 kce f_butyrate_nm_abs f_d40_b -0.223 0.0002
## rho306 kal f_butyrate_nm_abs f_d70 -0.223 0.0002
## rho579 hgCoAdC f_butyrate_nm_abs f_d40_b -0.223 0.0002
## rho315 kal f_butyrate_nm_abs f_d60_b -0.224 0.0001
## rho143 kamA f_butyrate_nm_rel f_d50_b -0.225 0.0001
## rho145 kamA f_butyrate_nm_rel f_d70_b -0.225 0.0001
## rho304 kal f_butyrate_nm_abs f_d50 -0.226 0.0001
## rho59 ghbt f_butyrate_nm_rel f_d70 -0.227 0.0001
## rho66 ghbt f_butyrate_nm_rel f_d40_b -0.227 0.0001
## rho334 kal f_butyrate_nm_rel f_d60_b -0.227 0.0001
## rho173 kamD f_butyrate_nm_rel f_d70 -0.228 0.0001
## rho230 kdd f_butyrate_nm_abs f_d70 -0.228 0.0001
## rho57 ghbt f_butyrate_nm_rel f_d50 -0.229 0.0001
## rho133 kamA f_butyrate_nm_rel f_d50 -0.229 0.0001
## rho278 kce f_butyrate_nm_abs f_d70_b -0.229 0.0001
## rho281 kce f_butyrate_nm_abs f_hGA_b -0.229 0.0001
## rho326 kal f_butyrate_nm_rel f_d80 -0.229 0.0001
## rho351 atoA f_butyrate_nm_abs f_d40_b -0.229 0.0001
## rho397 atoD f_butyrate_nm_abs f_hGA_b_m -0.229 0.0001
## rho76 abfD f_butyrate_nm_abs f_d50 -0.230 0.0001
## rho134 kamA f_butyrate_nm_rel f_d60 -0.230 0.0001
## rho277 kce f_butyrate_nm_abs f_d60_b -0.230 0.0001
## rho598 hgCoAdC f_butyrate_nm_rel f_d40_b -0.230 0.0001
## rho97 abfD f_butyrate_nm_rel f_d70 -0.231 0.0001
## rho276 kce f_butyrate_nm_abs f_d50_b -0.231 0.0001
## rho58 ghbt f_butyrate_nm_rel f_d60 -0.232 0.0001
## rho282 kce f_butyrate_nm_abs f_hGA_b_fs -0.232 0.0001
## rho238 kdd f_butyrate_nm_abs f_d50_b -0.233 0.0001
## rho376 atoA f_butyrate_nm_rel f_hGA_b -0.233 0.0001
## rho323 kal f_butyrate_nm_rel f_d50 -0.234 0.0001
## rho377 atoA f_butyrate_nm_rel f_hGA_b_fs -0.234 0.0001
## rho245 kdd f_butyrate_nm_abs f_hGA_b_m -0.235 0.0001
## rho372 atoA f_butyrate_nm_rel f_d60_b -0.235 0.0001
## rho399 atoD f_butyrate_nm_rel f_d50 -0.235 0.0001
## rho416 atoD f_butyrate_nm_rel f_hGA_b_m -0.235 0.0001
## rho260 kdd f_butyrate_nm_rel f_d80_b -0.236 0.0001
## rho343 atoA f_butyrate_nm_abs f_d60 -0.236 0.0001
## rho172 kamD f_butyrate_nm_rel f_d60 -0.237 0.0001
## rho305 kal f_butyrate_nm_abs f_d60 -0.237 0.0001
## rho325 kal f_butyrate_nm_rel f_d70 -0.237 0.0001
## rho96 abfD f_butyrate_nm_rel f_d60 -0.238 0.0001
## rho171 kamD f_butyrate_nm_rel f_d50 -0.238 0.0001
## rho371 atoA f_butyrate_nm_rel f_d50_b -0.240 0.0000
## rho359 atoA f_butyrate_nm_abs f_hGA_b_m -0.241 0.0000
## rho228 kdd f_butyrate_nm_abs f_d50 -0.243 0.0000
## rho324 kal f_butyrate_nm_rel f_d60 -0.243 0.0000
## rho362 atoA f_butyrate_nm_rel f_d60 -0.243 0.0000
## rho263 kdd f_butyrate_nm_rel f_hGA_b_fs -0.245 0.0000
## rho258 kdd f_butyrate_nm_rel f_d60_b -0.246 0.0000
## rho259 kdd f_butyrate_nm_rel f_d70_b -0.246 0.0000
## rho408 atoD f_butyrate_nm_rel f_d40_b -0.246 0.0000
## rho95 abfD f_butyrate_nm_rel f_d50 -0.247 0.0000
## rho378 atoA f_butyrate_nm_rel f_hGA_b_m -0.250 0.0000
## rho298 kce f_butyrate_nm_rel f_d80_b -0.252 0.0000
## rho370 atoA f_butyrate_nm_rel f_d40_b -0.252 0.0000
## rho250 kdd f_butyrate_nm_rel f_d80 -0.253 0.0000
## rho38 ghbt f_butyrate_nm_abs f_d50 -0.254 0.0000
## rho142 kamA f_butyrate_nm_rel f_d40_b -0.254 0.0000
## rho39 ghbt f_butyrate_nm_abs f_d60 -0.257 0.0000
## rho342 atoA f_butyrate_nm_abs f_d50 -0.259 0.0000
## rho361 atoA f_butyrate_nm_rel f_d50 -0.259 0.0000
## rho294 kce f_butyrate_nm_rel f_d40_b -0.260 0.0000
## rho296 kce f_butyrate_nm_rel f_d60_b -0.263 0.0000
## rho297 kce f_butyrate_nm_rel f_d70_b -0.263 0.0000
## rho300 kce f_butyrate_nm_rel f_hGA_b -0.263 0.0000
## rho295 kce f_butyrate_nm_rel f_d50_b -0.264 0.0000
## rho249 kdd f_butyrate_nm_rel f_d70 -0.266 0.0000
## rho269 kce f_butyrate_nm_abs f_d80 -0.266 0.0000
## rho283 kce f_butyrate_nm_abs f_hGA_b_m -0.266 0.0000
## rho247 kdd f_butyrate_nm_rel f_d50 -0.268 0.0000
## rho262 kdd f_butyrate_nm_rel f_hGA_b -0.268 0.0000
## rho301 kce f_butyrate_nm_rel f_hGA_b_fs -0.269 0.0000
## rho229 kdd f_butyrate_nm_abs f_d60 -0.280 0.0000
## rho264 kdd f_butyrate_nm_rel f_hGA_b_m -0.285 0.0000
## rho257 kdd f_butyrate_nm_rel f_d50_b -0.286 0.0000
## rho268 kce f_butyrate_nm_abs f_d70 -0.289 0.0000
## rho302 kce f_butyrate_nm_rel f_hGA_b_m -0.289 0.0000
## rho288 kce f_butyrate_nm_rel f_d80 -0.293 0.0000
## rho266 kce f_butyrate_nm_abs f_d50 -0.295 0.0000
## rho267 kce f_butyrate_nm_abs f_d60 -0.295 0.0000
## rho285 kce f_butyrate_nm_rel f_d50 -0.318 0.0000
## rho287 kce f_butyrate_nm_rel f_d70 -0.318 0.0000
## rho286 kce f_butyrate_nm_rel f_d60 -0.322 0.0000
## rho248 kdd f_butyrate_nm_rel f_d60 -0.331 0.0000
## pathway_var conc_var element spearman_rho p_value
## rho298 kce p_butyric_nm_rel p_d80_b 0.131 0.0294
## rho123 kamA p_butyric_nm_abs p_d40_b 0.127 0.0339
## rho239 kdd p_butyric_nm_abs p_d60_b 0.125 0.0366
## rho240 kdd p_butyric_nm_abs p_d70_b 0.123 0.0398
## rho221 kamE p_butyric_nm_rel p_d70_b 0.121 0.0431
## rho241 kdd p_butyric_nm_abs p_d80_b 0.121 0.0438
## rho244 kdd p_butyric_nm_abs p_hGA_b_fs 0.121 0.0442
## rho219 kamE p_butyric_nm_rel p_d50_b 0.120 0.0455
## rho220 kamE p_butyric_nm_rel p_d60_b 0.120 0.0451
## rho722 buk p_butyric_nm_abs p_d50 0.120 0.0458
## rho732 buk p_butyric_nm_abs p_d50_b 0.120 0.0461
## rho218 kamE p_butyric_nm_rel p_d40_b 0.119 0.0484
## rho224 kamE p_butyric_nm_rel p_hGA_b 0.119 0.0478
## rho225 kamE p_butyric_nm_rel p_hGA_b_fs 0.119 0.0478
## rho243 kdd p_butyric_nm_abs p_hGA_b 0.118 0.0496